4

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

- (IBAction)test:(id)sender {

    NSLog(@"YEES");
}

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

1月18日更新:

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

4

3 回答 3

3

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

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

[tapRecognizer setCancelsTouchesInView:NO];
于 2013-03-20T20:54:16.007 回答
0

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

于 2013-01-18T01:10:36.823 回答
0

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

于 2016-01-04T01:33:30.023 回答