Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 忽略触摸事件,并让其下方的视图处理触摸?_Iphone_Touch - Fatal编程技术网

Iphone 忽略触摸事件,并让其下方的视图处理触摸?

Iphone 忽略触摸事件,并让其下方的视图处理触摸?,iphone,touch,Iphone,Touch,我有一个用户可以触摸的可拖动视图,但是其中的一些矩形没有图像(alpha 0) 当用户单击透明区域时(我可以在没有alpha信息的情况下构建透明区域),我希望透明区域下方的视图(同一类)能够检测触摸 我的策略是让视图在用户触摸透明区域时忽略触摸,并希望下面的视图能够自动捕捉触摸事件。但我不确定这是否有效。(设置要测试这一点的内容需要一些时间) 我应该采取不同的方法,还是上述策略有效 谢谢。尝试覆盖superview中的方法hitTest:withEvent:。您可以使hitTest:withEv

我有一个用户可以触摸的可拖动视图,但是其中的一些矩形没有图像(alpha 0)

当用户单击透明区域时(我可以在没有alpha信息的情况下构建透明区域),我希望透明区域下方的视图(同一类)能够检测触摸

我的策略是让视图在用户触摸透明区域时忽略触摸,并希望下面的视图能够自动捕捉触摸事件。但我不确定这是否有效。(设置要测试这一点的内容需要一些时间)

我应该采取不同的方法,还是上述策略有效


谢谢。

尝试覆盖superview中的方法hitTest:withEvent:。您可以使hitTest:withEvent:返回要处理给定事件的视图

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    for (UIView *v in self.subviews){
        CGPoint pointInB = [v convertPoint:point fromView:self];
        if ([v someConditionYouMayWantToTestFor]){
            return v;
        }
    }
    return nil;
}

SomeConditionYouWantToTestFor方法用于测试是否希望子视图捕获事件

啊,谢谢。子视图会按正确的顺序排序吗?迭代中最重要的视图?我看到单触屏导致调用hitTest 3次。。不知道我的代码是不是乱七八糟,或者这是一种预期的行为