我有一个非常简单的UIViewController。它是用我在Interaface Builder中创建的视图初始化的,它只包含一个UIImageView。当用户触摸屏幕时,我希望调用UIViewController的touchesBegan消息。所以,我重写它并添加了一些日志记录,但什么也没发生。
我根本没有做任何“特殊”的事情,因为自从UIViewController继承自UIResponder以来,我希望这个开箱即用。根据我的理解,默认情况下UIImageViews禁用了用户交互,因此我通过InterfaceBuilder和我的UIViewcontroller的viewDidLoad方法启用了它(我已将UIImageView绑定到IBOutlet)。我还要确保在Interface Builder的父视图中启用了userInteraction。
我忘记了其他任何事情吗?
答案 0 :(得分:3)
答案 1 :(得分:0)
很难说你的问题是什么,我不知道你的意思是什么?
确保在Interface Builder中将touchesBegan事件与IBAction连接?
您必须创建一个IBAction函数来处理事件,并将even显式连接到IBAction。它并不像简单地覆盖方法那么简单。
虽然您将视图绑定到IBOutlet,但您需要使用IBAction连接事件,否则您将无法获得任何这些事件。
答案 2 :(得分:0)
请忽略第一个答案。事实上,它就像覆盖自定义视图中的方法一样简单。不接收touchesBegan的最常见原因是没有实现canBecomeFirstResponder方法。这不是IB连接,这些是触摸处理的标准方法。