現在在我的幾個iOS應用程序中,我需要遞歸地獲取相鄰的視圖。我想知道我們有沒有像viewAtLocation:(CGPoint)location
?或者有什麼方法可以實現它。如何獲取viewAtLocation:(CGPoint)的位置?
我已經使用了幾種方式,如C數組id matrix[row][col]
與大小來決定作爲指標值的位置,並檢索所有subview
然後通過循環檢查location
逐一等。雖然這些工作對我來說不過這些似乎並不好或適合我。那麼我們還能擁有什麼?
現在在我的幾個iOS應用程序中,我需要遞歸地獲取相鄰的視圖。我想知道我們有沒有像viewAtLocation:(CGPoint)location
?或者有什麼方法可以實現它。如何獲取viewAtLocation:(CGPoint)的位置?
我已經使用了幾種方式,如C數組id matrix[row][col]
與大小來決定作爲指標值的位置,並檢索所有subview
然後通過循環檢查location
逐一等。雖然這些工作對我來說不過這些似乎並不好或適合我。那麼我們還能擁有什麼?
這是最好的使用標準hitTest:withEvent
將處理之類的東西忽視了一個觀點,如果它的不透明度爲0.0以下代碼將做到這一點。文檔中說,手動調用該事件時會傳入nil
。
對於任何使用pointInside:withEvent:
擴展邊界的視圖,這也會正確運行。
謝謝這就是我正在尋找的東西,但在那裏有很大的文檔.. – rptwsthi
你老兄
UIView *view = <Your View>;
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[view addGestureRecognizer:recognizer];
[recognizer release];
- (void)handleSingleTap:(UITapGestureRecognizer*)recognizer{
CGPoint p = [recognizer locationInView:recognizer.view];
for (UIView *v in recognizer.view.subviews) {
if (CGRectContainsPoint(v.frame, p)) {
NSLog(@"view Found with frame %@",NSStringFromCGRect(v.frame));
//If your views doesn't overlap then break from here
break;
}
}
}
請您詳細說明'相鄰視圖'是什麼意思? –
@Mohit_Jaiswal其實第一行描述的情況,只是我正在處理的。仍然與鄰近我的意思是接下來,前,上下。但問題並沒有太多。 – rptwsthi
所以,我在可見視圖中看到的是,您有多個視圖,並且您需要/打算獲取該視圖的位置。我對嗎?那麼,如果這種情況比我認爲這不是件難事,讓我先解釋一下,然後再回到你身邊。 –