ビューに複数のCAレイヤーがあり、特定のレイヤーを取得して、アニメーションで削除するなどのタスクを実行したいと考えています。hitTestメソッドを使用して取得するのは、その場所のCGPointだけです。この時点で、タップされたレイヤーの場所を取得するにはどうすればよいかわからないので、特定のアクションを実行できます。
前もって感謝します...
ビューに複数のCAレイヤーがあり、特定のレイヤーを取得して、アニメーションで削除するなどのタスクを実行したいと考えています。hitTestメソッドを使用して取得するのは、その場所のCGPointだけです。この時点で、タップされたレイヤーの場所を取得するにはどうすればよいかわからないので、特定のアクションを実行できます。
前もって感謝します...
UIViewに対してこれを実行しましたが、CALayerに対しても同じことを試してください。
for(CALayer *layer in [self.view subviews]){
if([layer class]==NSClassFromString(@"CALayer")){
if([layer hitTest: location]){
NSLog(@"you have clicked the layer in the point location");
}
}
}
CALayer::hitTestを呼び出します
/*ポイント'p'を含むレイヤーの最も遠い子孫を返します。*兄弟は上から下の順序で検索されます。'p'は、CATransformLayerではない*レシーバーの最も近い祖先の座標空間にあると定義されます(変換レイヤーには、ポイントを指定できる2D *座標空間がありません)。* /
例:ホスティングUIView:
touchesEnded:(NSSet*)ts {
UITouch *touch = ts.anyObject;
CALayer *hit = [self.layer hitTest:touch.location];
}