【问题标题】:No button events in iphone 5 simulatoriphone 5模拟器中没有按钮事件
【发布时间】:2013-01-01 16:30:40
【问题描述】:

当我在 iPhone 6 模拟器中测试我的应用程序时,一切都按预期运行。但是,如果我在 iPhone 5 或 iPhone 5.1 模拟器中对其进行测试,我似乎无法触发按钮事件。我使用的是 Xcode 4.5.2,而不是使用情节提要,我使用简单的按钮进行了测试,操作如下:

- (IBAction)test:(id)sender {

    NSLog(@"YEES");
}

在界面构建器中使用拖放连接操作。我似乎无法将其解雇..您知道可能是什么问题吗?

1 月 18 日更新:

如果我“正常”单击 iPhone 5/5.1 模拟器中的按钮,则没有任何反应。如果我稍微“慢”点击一个按钮,该按钮将被“按下”/选中。如果我做一个“非常慢”的点击,比如按住按钮 3 秒钟,我会得到按钮点击事件!这怎么可能??

【问题讨论】:

  • 按钮上有userInteractionEnabled吗?
  • userInteractionEnabled 已启用,是的。
  • 您将 IBAction 与哪个事件相关联。它应该是 touchupinside。
  • 我有同样的问题,如果你找到解决方案 - 请写出来。在 ios6 中,所有按钮都按建议按下,但在 ios5 模拟器上,它们只有在非常长的点击后才会触发事件......

标签: iphone ios ios5 ios6 ios-simulator


【解决方案1】:

我真的怀疑这可能是视图重叠的问题。 请为您在视图控制器上使用的视图着色,并检查您的任何视图是否与您的按钮重叠

【讨论】:

  • 在为我的不同视图着色后,似乎没有重叠视图。但是请检查我在问题中的更新 - 我认为我能够稍微缩小问题范围。
【解决方案2】:

我找到了适合我的案例的解决方案 - 我将 UITapGestureRecognizer 添加到容器 UIView 中,它会在 UIButtons 之前拦截事件,并且需要一些时间来失败,然后按钮才能处理点击...但奇怪的是,在 iOS 6 中一切正常

为了避免这种情况,我们可以简单地调用:

[tapRecognizer setCancelsTouchesInView:NO];

【讨论】:

    【解决方案3】:

    我在使用 iPhone 5s 模拟器时遇到了类似的问题。通过反复试验,我意识到模拟器中按钮的高度为 0 或其他小数字......第一个线索是当我改变它的背景颜色时 - 背景没有显示在模拟器中(在较大的模拟器上,像 6 或 6 plus,它显示为细线而不是全高)。然后当我添加一个高度约束时,它开始接受点击事件。这帮助我确定了问题,但这不是我正在寻找的解决方案。最初我在没有尺寸限制的情况下布置了按钮,所以它的实际尺寸应该由它的固有尺寸决定。因此,我将按钮的垂直压缩阻力改为“必需”,而不是高度约束。这解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多