Iphone 检测UIScrollView中图层的接触
我有一个UIScrollView,它包含任意数量的缩略图,可以检测触摸事件,自己执行3D转换并调用委托方法 我无法克服的一个问题是检测哪个子层正在被挖掘。我正在将layer.name设置为索引计数,UIScrollView的子类确实会获得touch事件。现在剩下的最后一个障碍是如何在子层上进行命中测试以获得name属性,瞧 我正在考虑将UIView子类化为CALayer的容器,并以这种方式捕获触摸事件。但我希望有一种更经济的方法来确定所接触的子层 我一直在尝试的代码(在我的UIScrollView子类中):Iphone 检测UIScrollView中图层的接触,iphone,uiscrollview,calayer,Iphone,Uiscrollview,Calayer,我有一个UIScrollView,它包含任意数量的缩略图,可以检测触摸事件,自己执行3D转换并调用委托方法 我无法克服的一个问题是检测哪个子层正在被挖掘。我正在将layer.name设置为索引计数,UIScrollView的子类确实会获得touch事件。现在剩下的最后一个障碍是如何在子层上进行命中测试以获得name属性,瞧 我正在考虑将UIView子类化为CALayer的容器,并以这种方式捕获触摸事件。但我希望有一种更经济的方法来确定所接触的子层 我一直在尝试的代码(在我的UIScrollVie
我得到两个编译错误。第一个警告:未找到hitTest方法。还有一个错误“请求成员‘名称’不是结构或联合”。调用
[scrollView.layer hitTest:touchPoint]代码>。返回值将是被触摸的图层。如果返回的层等于scrollView.layer
,则未点击任何子层。Ole,我想我的目标是相同的解决方案。但是,我在上面发布的代码中出现了两个编译错误。您可能没有导入。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] == 1) {
for (UITouch *touch in touches) {
CGPoint point = [touch locationInView:[touch view]];
CALayer *alayer = [self.layer hitTest:point];
if (alayer) NSLog(@"layer %@ touched",alayer.name);
else NSLog(@"layer not detected");
}
}
}