我正在使用模拟器为iPhone 5准备我的应用程序,我发现了一个奇怪的问题,我的一个视图中的几个按钮在iPhone中不起作用(Retina 4英寸)模拟器,但在iPhone(Retina 3.5英寸)模拟器中工作正常。这些按钮在点击时根本不做任何事情。还有其他人遇到过这个问题吗?
我很难搞清楚从哪一个开始。关于从哪里开始的任何建议?
非常感谢您的所有智慧!
答案 0 :(得分:32)
您需要编辑MainWindow.xib并启用“启动时全屏”。有关更详细的说明,请参阅Apple的文档:
重要提示:在Interface Builder中创建窗口时,它是 建议您在启动时启用“全屏启动”选项 属性检查员。如果未启用此选项且您的窗口是 小于目标设备的屏幕,触摸事件将不会 收到你的一些意见。这是因为窗户(就像所有 视图)不接收其边界矩形之外的触摸事件。 因为默认情况下视图不会被剪切到窗口的边界,所以 视图仍然显示,但事件无法到达。启用 “启动时全屏”选项可确保窗口大小 适合当前的屏幕。
答案 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英寸的事件。