检测UIView框架外部触摸的通用方法

pat*_*ryk 3 touch uiview ios

我有UIViewController里面有一个自定义的UIView(让我们称之为VC和按钮).当触摸按钮时,它的边界和中心随动画变化(它变得更大,并提供一些选项供选择,在选择它后调整后).我想知道如何"检测"(并忽略该触摸的默认动作)按钮外的触摸(只是为了"隐藏"按钮,特别是使按钮调整大小为默认的较小尺寸).

有没有通用的方法可以做到这一点?VC在其视图中有很多对象(表视图,按钮,文本字段,使用quartzcore制作的自定义图表等),我是否需要在按钮的"大模式"期间阻止所有这些元素的"交互性"?

Eri*_*rik 12

您可以子类化您正在使用的视图,并通过实现扩展与视图中的触摸相对应的坐标

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
Run Code Online (Sandbox Code Playgroud)

阅读文档中的更多内容

http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instm/UIView/hitTest:withEvent:

去年的一些WWDC视频中提出了这种实现方式