2010-10-07 99 views
2

我在UIView中有一个UIButton,它在UIViewController中,我已经从.xib文件中分配和插入。UIButton事件'Touch Up Inside'无法正常工作。 'Touch Down'正常工作

当一个IBAction挂钩到UIButton的“Touch Down”事件时,它会正确触发。但如果我将它与“Touch Up Inside”事件联系起来,它就不会回应。

其他事件也不起作用。 “触摸拖动输入”,“触摸拖动退出”,“触摸外部”等。

有没有人有任何想法,为什么这可能是?

丰富

+0

是UIViews userInteractionEnabled设置为YES? – 2011-06-17 03:59:41

+0

你可以分享一些相关的代码给我们看看吗? – 2011-06-18 12:38:30

+0

我也有这个问题。我的UIButton在一个自定义表格单元格上 - 我在想这个tableview是在做一些奇怪的事情。 – nevster 2011-08-07 08:47:45

回答

4

首先,我可以完全肯定向你保证,正确连接在IB UIButtons像预期的那样触摸向上内的事件进行响应。 (你可以想象一下,如果他们没有?!)

鉴于这种情况,公平地说,你没有按照你的预期上钩。这里有一些事情要尝试:

  • 让你的动作打印日志声明的第一件事:

    NSLog(@"%s", __PRETTY_FUNCTION__);

  • 入住IB,唯一的功能,你的按钮连接到是你的触摸内部行动。 (稍后,您可以将它连接到多个事件,但为了测试,我们希望尽可能简化。)

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

    - (IBAction) myButtonPressedAction: (id) sender;

  • 只是要确保一切的清洁,从您的.xib删除按钮,并重新添加它。

  • 确保父视图有userInteractionEnabled集。
  • 确保xib的FileOwner是您的视图控制器类型。

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

+0

“确保父视图具有'userInteractionEnabled'设置”为我工作!谢谢 – 2015-04-01 12:54:12