iOS - iPhone 6模拟器上的大小错误

时间:2015-05-21 06:58:40

标签: ios objective-c xcode constraints uistoryboard

我在水平居中的UILabel中插入了UIStoryBoard。但是,当我在iPhone 6上运行时,它并不在中心。为什么会发生这种情况以及如何防止未来遇到同样的问题?

screenshot1

screenshot2

在像iPhone 5这样正常工作的其他模拟器上。

3 个答案:

答案 0 :(得分:1)

iOS设备有不同的分辨率,特别是在iPhone 6和iPhone 6 Plus发布之后。因为故事板只是应用程序界面的一般表示,所以画布的大小实际上类似于任何一个特定的屏幕大小。实际上,您可能会注意到默认画布有点像" square。"

因此,您不能指望您的视图在模拟器或实际设备上看起来与在画布中完全相同,只需将它们全部放在画布中即可。要进行布局,您需要使用约束,它们是一组明确告诉系统您希望如何定位视图的规则。事实上,从iOS 8开始,Apple鼓励开发人员利用auto layoutsize classes开发适合任何尺寸屏幕的应用,甚至同时支持iPhone和iPad

在您的情况下,为了使用约束将标签放在屏幕的中心,只需 Control - 将您的标签拖动到故事板中的超级视图:

enter image description here

在弹窗框中,同时选择在容器中水平居中在容器中垂直居中。您可以按 Shift 一次选择多个约束。然后,在大小检查器中,确保约束的常量为0

enter image description here

请查看Apple's guide about using AutoLayout,因为它是您将来开发iOS应用(或OS X应用)时将使用的主要布局机制。

答案 1 :(得分:1)

首先选择标签并使用Pin工具添加顶部,宽度,高度约束:

Pin

然后,使用Align属性将其水平对齐:

Align

P.S - 学习自动布局是一件非常繁琐的事情,但是一旦你熟悉它,你就会发现很容易为多个设备创建视图。寻找教程和视频。实践,实践!

答案 2 :(得分:0)

- 在故事板中选择视图控制器 - 在实用程序区域的文件检查器中勾选“使用自动布局选项” - 通过单击编辑器区域的图钉按钮底部,选择标签并添加该标签的约束。

希望它对你有用。谢谢。