UIView适用于iPhone 4in,但在iPhone 3.5in中被压扁

时间:2012-10-06 22:43:03

标签: ios uiview resize ios6 xib

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

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

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

更新

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

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

2 个答案:

答案 0 :(得分:2)

我现在遇到了同样的问题,幸运的是找到了解决方案。我创建了一个包含一个简单按钮的简单应用程序,我想设置它的大小为10px左右。 self.view.bounds返回xib的实际大小,如果它设置为例如iPhone4视网膜,并且你在不同的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;

我在所有设备类型上测试过,它运行良好。

(显然它只适用于"使用Autolayout"未被攻击)

希望这有帮助。

答案 1 :(得分:1)

听起来您需要查看您在.xib文件中的视图上设置的自动调整大小限制。您可以将视图限制为固定大小。