我的视图中有多个 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];
}