我的按钮没有检测到iPhone(Retina 4英寸)模拟器上的触摸事件,但适用于iPhone(Retina 3.5英寸)模拟器

时间:2012-09-19 19:59:02

标签: iphone ios ios6 iphone-5

我正在使用模拟器为iPhone 5准备我的应用程序,我发现了一个奇怪的问题,我的一个视图中的几个按钮在iPhone中不起作用(Retina 4英寸)模拟器,但在iPhone(Retina 3.5英寸)模拟器中工作正常。这些按钮在点击时根本不做任何事情。还有其他人遇到过这个问题吗?

我很难搞清楚从哪一个开始。关于从哪里开始的任何建议?

非常感谢您的所有智慧!

5 个答案:

答案 0 :(得分:32)

您需要编辑MainWindow.xib并启用“启动时全屏”。有关更详细的说明,请参阅Apple的文档:

  

重要提示:在Interface Builder中创建窗口时,它是   建议您在启动时启用“全屏启动”选项   属性检查员。如果未启用此选项且您的窗口是   小于目标设备的屏幕,触摸事件将不会   收到你的一些意见。这是因为窗户(就像所有   视图)不接收其边界矩形之外的触摸事件。   因为默认情况下视图不会被剪切到窗口的边界,所以   视图仍然显示,但事件无法到达。启用   “启动时全屏”选项可确保窗口大小   适合当前的屏幕。

Complete document from Apple

答案 1 :(得分:8)

对我来说,解决方案是将MainWindow.xib的大小(“Simulated Metrics”)设置为“Retina 4 Full Screen”。我不需要改变其他屏幕的大小(它们仍然设置为无)。更改MainWindow.xib后,底部区域再次可单击...

答案 2 :(得分:4)

由于弹簧和支柱的设置方式,问题是由于另一个控件重叠我的按钮引起的。调整按钮的z顺序解决了问题。谢谢,全部!

答案 3 :(得分:4)

这个问题有两个解决方案:

如果您使用的是MainWindow,请按以下步骤操作:

a。选择MainWindow.xib

b。从“属性”检查器中的“Windows”选项中选择Full Screen at Launch

如果您的应用程序不包含MainWindow,则只需添加:

self.view.frame = [UIScreen mainScreen].bounds

在ViewDidLoad中。

答案 4 :(得分:1)

我解决了我的问题。

视图.origin对于3.5英寸和4英寸的屏幕是不同的,因此,在为两者编写公共代码时,我们需要注意提供CGRectmake(x,y,w,h);

设定温度。差异视图的差异背景颜色,以便您可以检查是否有任何视图重叠,以获取4.0英寸的事件。