0

我在新的 Xcode 中启动了一个新项目,我看到我的默认主窗口设置为 320x548。我对此很好,但是当我测试我的应用程序时,我添加到我的主 xib 的视图应该是 280x280,在 3.5 英寸设备上测试时看起来更像是 280x200。

我已经尝试在 xib 中更改该视图的设置,但似乎没有任何影响。

如何确保背景兼容性,以便在旧设备中视图大小相同?

更新:

当我以编程方式添加视图时,一切正常,但是当我通过控制器中的插座添加它时,一切都被压扁了。我试图(以编程方式)强制视图为 280x280,但它只是扭曲了视图的内容。它只是想成为280x192 ...

我一定做错了什么,但我不知道是什么。

4

2 回答 2

2

我现在遇到了同样的问题,幸运的是找到了解决方案。我创建了一个包含一个简单按钮的简单应用程序,我想将其大小设置为 10 像素左右的边距。self.view.bounds 返回 xib 的实际大小,如果它设置为例如 iPhone4 Retina 并且您在不同的 iPhone 版本中对其进行测试,它将返回不正确的值。使用 [[UIScreen mainScreen] bounds]; 而是减去状态栏的高度( [[UIApplication sharedApplication] statusBarFrame].size.height )。最后的东西看起来像这样:

CGRect frame = [[UIScreen mainScreen] bounds];
frame.origin.x = 10;
frame.origin.y = 10;
frame.size.width -= 20;
frame.size.height -= (20 + [[UIApplication sharedApplication] statusBarFrame].size.height);

button.frame = frame;

我在所有设备类型上对其进行了测试,效果很好。

(显然它只在“使用自动布局”未勾选时才有效)

希望这可以帮助。

于 2012-11-20T21:45:34.103 回答
1

Sounds like you need to review the auto sizing constraints that you've set on the view in the .xib file. You can constrain the view to a fixed size.

于 2012-10-07T15:39:56.937 回答