Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 检测UIScrollView中图层的接触_Iphone_Uiscrollview_Calayer - Fatal编程技术网

Iphone 检测UIScrollView中图层的接触

Iphone 检测UIScrollView中图层的接触,iphone,uiscrollview,calayer,Iphone,Uiscrollview,Calayer,我有一个UIScrollView,它包含任意数量的缩略图,可以检测触摸事件,自己执行3D转换并调用委托方法 我无法克服的一个问题是检测哪个子层正在被挖掘。我正在将layer.name设置为索引计数,UIScrollView的子类确实会获得touch事件。现在剩下的最后一个障碍是如何在子层上进行命中测试以获得name属性,瞧 我正在考虑将UIView子类化为CALayer的容器,并以这种方式捕获触摸事件。但我希望有一种更经济的方法来确定所接触的子层 我一直在尝试的代码(在我的UIScrollVie

我有一个UIScrollView,它包含任意数量的缩略图,可以检测触摸事件,自己执行3D转换并调用委托方法

我无法克服的一个问题是检测哪个子层正在被挖掘。我正在将layer.name设置为索引计数,UIScrollView的子类确实会获得touch事件。现在剩下的最后一个障碍是如何在子层上进行命中测试以获得name属性,瞧

我正在考虑将UIView子类化为CALayer的容器,并以这种方式捕获触摸事件。但我希望有一种更经济的方法来确定所接触的子层

我一直在尝试的代码(在我的UIScrollView子类中):


我得到两个编译错误。第一个警告:未找到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");

        } 
    } 
}