現在、いくつかの iOS アプリケーションで、隣接するビューを再帰的に取得する必要があります。のようなものがあるのだろうviewAtLocation:(CGPoint)locationか?または、それを実装する方法はあります。
id matrix[row][col]サイズで決定された位置をインデックス値としてC配列を使用し、すべてを取得してループ内で1つずつsubviewチェックするなど、いくつかの方法を使用しました。locationでは、他に何ができるでしょうか?
現在、いくつかの iOS アプリケーションで、隣接するビューを再帰的に取得する必要があります。のようなものがあるのだろうviewAtLocation:(CGPoint)locationか?または、それを実装する方法はあります。
id matrix[row][col]サイズで決定された位置をインデックス値としてC配列を使用し、すべてを取得してループ内で1つずつsubviewチェックするなど、いくつかの方法を使用しました。locationでは、他に何ができるでしょうか?
hitTest:withEvent不透明度が 0.0 の場合にビューを無視するなどの処理を行う標準を使用することをお勧めします。ドキュメントには、nil手動で呼び出すときにイベントを渡すように記載されています。
これは、 を使用して境界を拡張したビューに対しても正しく動作しますpointInside:withEvent:。
次のコードはあなたのためにそれを行います
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;
}
}
}