现在在我的几个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
所以,我在可见视图中看到的是,您有多个视图,并且您需要/打算获取该视图的位置。我对吗?那么,如果这种情况比我认为这不是件难事,让我先解释一下,然后再回到你身边。 –