UIView子视图向前发展

时间:2013-04-12 20:41:23

标签: ios uiview

我有两个自定义UIView(分别为A和B),每个都有一个设置为相同原点和相同大小的框架。它们都作为子视图添加到父UIView(C)中。

我有一个触摸识别器作为A和B的一部分,可以监听某些地方的触摸。如果收到该触摸,它会将一个代表提升到父母UIView,说它已被触摸。问题在于,由于B在A之后添加,因此B从未接收到触摸事件。

A和B UIViews是带有端点的单行。他们都识别端点上的触摸并提出代理通知。如何在顶部使用父视图添加子视图并识别它们的触摸?这就像一个独特的东西。

2 个答案:

答案 0 :(得分:1)

如果A正在接收触摸事件而B不是他们都是C的孩子,那么这是因为A声称所有触摸事件本身,包括那些用于B的事件。

解决方法是覆盖A上的pointInside:withEvent:方法,以确定它是否应该为自己接受事件,如下所示:

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
    if ([self pointIsInHotspot:point]) return YES;
    return NO;
}

其中pointIsInHotspot是您需要执行的任何测试,以确定该点是否位于视图中的活动区域。

答案 1 :(得分:0)

在手势识别器中将cancelsTouchesInView设置为NO。