我有一个视图控制器,它包含一个滚动视图,它占用了整个可用的窗口。有一个UIView作为容器视图使用,它是scrollview的子视图,并包含所有其他视图和控件。当视图控制器初始化时,有很多配置会根据Web服务的数据来显示哪些视图和控件。iOS按钮嵌套在视图中没有接收到触摸
附加到视图控制器的主视图是一个轻击手势识别器。我发现我需要检查[触摸视图]以查看它是否是按钮或我不希望手势识别器解释的任何其他控件,并且将一个NO值从
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)触摸,如果它是这些控制的一次
委托方法。
所以在这个容器视图是另一个(UIView)子视图,并在该子视图中是一个按钮。视图控制器是导航控制器堆栈的一部分,并且当这仅作为导航控制器呈现时,它们都可以很好地工作。
当导航控制器显示在标签栏的一个标签上时,那么当我点击按钮时,它不会识别该按钮上的轻击。当我在上面的委托方法中断时,[touch view]是UIView,而不是UIButton。
如果我按住按钮一秒左右,那么它确实识别按钮,并将消息转发到按钮。
对此有何看法?我可以发布代码,只是不知道要发布什么...
找到它。容器视图具有灵活的高度自动调整掩码集,因此由于选项卡栏而被设置为较小的高度。 – mickm