我有一个自定义的UIViewController,其UIView占据屏幕的一个角落,但是它大部分是透明的,除了一些按钮和其他东西。由于这个视图上的对象布局,该视图的框架可能会覆盖其中的一些按钮。如果触摸不在重要的地方,我希望能够忽略该视图上的任何触摸,但是我似乎只能传递实际的触摸事件(touchesEnded / nextResponder之类的)。如果我有一个不使用touchesEnded的UIButton或类似的东西,我如何将触摸事件传递给它?
我不能手动找到要调用的按钮选择器,因为这个自定义的ViewController可以用于许多不同的视图。我基本上需要一种方法来调用此方法:
[self.nextResponder touchesEnded:touches withEvent:event];
对于UIControl类型也适用。
我不能手动找到要调用的按钮选择器,因为这个自定义的ViewController可以用于许多不同的视图。我基本上需要一种方法来调用此方法:
[self.nextResponder touchesEnded:touches withEvent:event];
对于UIControl类型也适用。
.h
和.m
文件,里面代码很少,但它会完成任务。此外,一个穿透视图是你工具包中有用的子类。如果你的视图控制器在nib文件中创建视图,只需进入IB文件并在“identity inspector”中更改视图的类为你的新子类即可。如果是以编程方式创建,则在loadView
中创建并分配你的视图子类(见编辑)。 - StuarthitTest:withEvent:
)来决定是否应该完全接收触摸,但是使用手势识别器可以区分不同类型的触摸。 - Stuartif hitView is UIControl
来测试点击是否在按钮上(可以适用于任何类型的控件)。如果是,则返回该视图,否则返回nil
以通过触摸。 - Nitish K.