我的button不检测iPhone(Retina 4英寸)模拟器上的触摸事件,但在iPhone(Retina 3.5英寸)模拟器

我正准备使用模拟器为iPhone 5准备应用程序,并且发现了一个奇怪的问题,在我的一个视图中,我的两个button在iPhone(Retina 4英寸)模拟器中不起作用,但在iPhone(Retina 3.5英寸)模拟器中工作正常。 这些button在被窃听时根本无法做任何事情。 有没有人遇到过这个问题?

我很难搞清楚从哪里开始。 任何build议从哪里开始?

非常感谢您的智慧!

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

重要:在Interface Builder中创build窗口时,build议您在属性检查器中启用全屏启动选项。 如果此选项未启用且您的窗口小于目标设备的屏幕,则某些视图不会接收触摸事件。 这是因为窗口(如所有视图)不会在边界矩形外接收触摸事件。 由于默认情况下,视图不会被剪切到窗口边界,所以视图仍然可见,但是事件不能到达它们。 在启动时启用全屏选项可确保窗口适合当前屏幕。

从苹果完整的文件

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

问题是由于弹簧和支柱的设置方式,另一个控件与我的button重叠造成的。 调整button的Z顺序解决了问题。 谢谢,所有!

有两个解决这个问题的方法:

如果您正在使用MainWindow,请按照下列步骤操作:

一个。 selectMainWindow.xib

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

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

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

在ViewDidLoad中。

我解决了我的问题。

查看.origin的3.5英寸和4英寸的屏幕是不同的,所以,在编写通用代码时,我们需要注意CGRectmake(x,y,w,h) ;

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