我有一个带有UIButton
的.xib。 UIButton
通过Touch Up Inside
与文件所有者中的方法- (IBAction)play:(id)sender
建立了连接。
当我在第一代iPad上运行时,UIButton
在点击时会显示突出显示的状态,但不会调用连接的方法。我在方法的第一行设置了一个断点,它永远不会被击中。
当我在第二代iPad上运行应用程序时,一切正常。
我已经盲目地对这个问题进行了一些攻击,但我希望其他人对可能发生的事情有所了解。知道我在忽视什么吗?
感谢Stavash的帮助,我发现问题的根源是附加到包含按钮的视图的手势识别器。
当我删除手势识别器时,一切正常。
我看到一个related question表示使用UIGestureRecognizerDelegate
的解决方案,以防止手势识别器在按下按钮时响应。
但是,即使按下按钮时委托方法返回NO
,Touch Up Inside
事件似乎仍未触发。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ((touch.view == self.playButton)) {
return NO;
}
return YES;
}
代码来自相关问题,链接在上面
明天我会再做一些实验,如果我找出错误的地方,我会再次发帖。
答案 0 :(得分:1)
在该视图控制器中有一个活跃的UITapGestureRecognizer,在每个iOS版本中都有不同的反应,这很可能(看起来很奇怪)。尝试取消手势识别器的任何活动实例,看它是否有效。