No button events in iphone 5 simulator
当我测试我的应用程序在iPhone 6模拟器中运行时,一切正常。但是,如果我在iPhone 5或iPhone 5.1模拟器中对其进行测试,则似乎无法触发按钮事件。我使用的是Xcode 4.5.2,而不是使用情节提要,并且我使用简单的按钮进行了测试,这些按钮的操作如下:
1 2 3 4 | - (IBAction)test:(id)sender { NSLog(@"YEES"); } |
然后使用界面构建器中的拖放操作来连接动作。我似乎无法将其解雇。。您对可能是什么问题有任何想法吗?
1月18日更新:
如果我执行"常规"操作,请在iPhone 5 / 5.1模拟器中单击一个按钮,则不会发生任何事情。如果我稍稍"慢"地单击一个按钮,该按钮将被"按下" /选中。如果我单击"确实很慢",例如按住按钮3秒钟,则会发生按钮单击事件!这怎么可能呢?
我为我的情况找到了解决方案-我在容器UIView中添加了UITapGestureRecognizer,它在UIButtons之前拦截事件,并且需要一些时间才能使按钮能够处理轻击...但是,奇怪的是,在iOS 6中,一切正常
为避免这种情况,我们可以简单地调用:
1 | [tapRecognizer setCancelsTouchesInView:NO]; |
我在iPhone 5s模拟器上遇到类似的问题。经过反复试验,我意识到模拟器中按钮的高度为0或其他很小的数字……这的第一个线索是,当我更改其背景颜色时,背景并未在模拟器中显示(在较大的模拟器上,例如6或6加号,则显示为细线而不是全高)。然后,当我添加高度限制时,它开始接受点击事件。那可以帮助我确定问题所在,但这不是我想要的解决方案。最初,我在设置按钮时没有大小限制,因此它的实际大小应该由其固有大小因此,我将高度的垂直压缩阻力更改为" required",而不是高度限制。解决了该问题。
我真的怀疑这可能是视图重叠的问题。
请为您在视图控制器上使用的视图着色,并检查您的任何视图是否与按钮重叠