是否有人在 Xcode 4.5 上遇到了 IBAction touchUpInside
没反应的情况,而且 iOS 部署目标也设置为了 5?我在使用 iOS6 的模拟器时它可以工作,但在 iOS5 上不行。
我曾经遇到过同样的问题,因为我使用了轻拍手势。您应该可以通过添加下面这行代码来保留现有代码。这将防止您的轻拍手势影响内部按钮等的任何轻拍操作...
yourTapGesture.cancelsTouchesInView = NO;
编辑:
我已经找到了解决方案。我在视图上添加了一个tap gesture
,这会覆盖视图检测任何按钮的touchUpInside
操作的能力,因为它们也是视图的一部分。所以你应该删除手势识别器或使其特定于某个对象。例如,我将触摸手势添加到视图中未在子视图上的指定部分(我创建了一个新对象/出口并加以标记)。仍然不确定为什么在5.1和6.0中有所不同,但这应该可以帮助你。
原始帖子:
我遇到了同样的问题。我的一个项目中,在模拟器版本6.0上,子视图上的按钮是可点击的,而在版本5.1上则不行。我还添加了一些手势识别器,但注释掉它们后发现它们不是问题所在。我唯一发现的问题是,有时候按钮可以在触摸结束外部动作时被点击(尽管它们被编程为在内部触摸结束),所以我不确定苹果是否更改了按钮操作的eNums?如果我找到解决方案,我一定会在这里提供。
我刚刚创建了一个新的演示项目。我在视图中添加了一个按钮,处理touchUpInside事件,并使用Xcode4.5在部署目标ios6和ios5上进行了构建和测试 - 两者都正常工作。你可以自己尝试使用演示项目 - 不会花费超过几分钟。