UIButton事件'Touch Up Inside'无效。 'Touch Down'工作得很好

时间:2010-10-07 18:16:49

标签: iphone events uikit uibutton ibaction

我在UIView中有一个UIButton,它位于UIViewController中,我已经从.xib文件中分配和输入。

当将IBAction挂钩到UIButton的“Touch Down”事件时,它会正确触发。但如果我把它连接到'Touch Up Inside'事件,它就不会响应。

其他事件也不起作用。 '触摸拖动输入','触摸拖动退出','触摸外部'等仅触摸下来。

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:4)

首先,我绝对可以肯定地向您保证,在IB中正确连接的UIButtons会按预期响应内部事件。 (你能想象他们没有吗?!)

考虑到这一点,可以肯定的是,你没有像预期的那样迷上了。以下是一些尝试:

  • 让您的操作首先打印日志语句:

    NSLog(@"%s", __PRETTY_FUNCTION__);

  • 在IB中检查按钮所连接的ONLY功能是您的补足内部动作。 (稍后,您可以将其连接到多个事件,但是,为了进行测试,我们希望尽可能简化。)

  • 确保您的按钮为50x50或更大。 (小按钮很难按下。)
  • 现在,将按钮设为圆角矩形按钮。如果您有图像按钮,并且图像具有透明度,则可能很难按下。
  • 确保您的行动有正确的签名:

    - (IBAction) myButtonPressedAction: (id) sender;

  • 为了确保一切都干净,请删除.xib中的按钮并重新添加。

  • 确保父视图设置为userInteractionEnabled
  • 确保xib的FileOwner是您的视图控制器类型。

如果这些都没有帮助,您将不得不告诉我们有关问题区域的更多信息。也许在IB中添加按钮设置的屏幕截图并从项目中添加代码片段。