2

我在 UIView 中有一个 UIButton,它位于我从 .xib 文件分配和初始化的 UIViewController 中。

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

其他事件也不起作用。“Touch Drag Enter”、“Touch Drag Exit”、“Touch Up Outside”等。仅 Touch Down。

有谁知道为什么会这样?

富有的

4

1 回答 1

4

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

鉴于此,可以肯定的是,您并没有按照您的预期将事情联系起来。以下是一些可以尝试的事情:

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

    NSLog(@"%s", __PRETTY_FUNCTION__);

  • 检查 IB,您的按钮连接到的唯一功能是您的内部修饰操作。(稍后,您可以将其连接到多个事件,但为了测试,我们希望尽可能简化。)

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

    - (IBAction) myButtonPressedAction: (id) sender;

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

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

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

于 2011-06-28T15:45:37.873 回答