View 在没有自动布局的 iphone 4 和 5/6 上有不同的位置

Posted

技术标签:

【中文标题】View 在没有自动布局的 iphone 4 和 5/6 上有不同的位置【英文标题】:View has different position on iphone 4 and 5/6 without Auto-layout 【发布时间】:2014-11-13 23:46:47 【问题描述】:

我没有使用自动布局,但我在情节提要上有一个视图(使用界面构建器),它在视图属性上有这样的:

X : 0 , Y : 43, Width :325, Height : 362.

我没有使用自动布局,并且 IB 上的视图具有固定的模拟大小。

在 iphone 4 上 - 视图的尺寸变为:

ContainerView. X : 0.000000 Y:63.000000 Height :362.000000 Width : 325.000000

在 iphone 5/6 上它们变成了:

ContainerView. X : 0.000000 Y:151.000000 Height :362.000000 Width : 325.000000

所以,Y 是不同的。

ViewController 不使用导航栏或其他任何东西。

    为什么在 iphone 4 上它们与在 IB 上的不同? 为什么 4 和 5/6 之间存在差异?我猜是因为屏幕尺寸不同和状态栏的差异 - 但差异不是 88 pt,不是吗? 将它放在同一位置的最佳方式是什么?以编程方式检查设备并调整框架或使用自动布局?

谢谢

【问题讨论】:

【参考方案1】:

如果您禁用 AutoLayout,这意味着您正在使用 Autoresizing,它具有使您的视图适应大小和方向变化的有限功能。检查您的自动调整蒙版

推荐使用 AutoLayout 和尺寸类的方法,以便您可以根据不同的尺寸和方向微调所有 UI 组件。您可以查看 Apple 官方文档以供参考

https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/AboutAdaptiveSizeDesign.html

【讨论】:

以上是关于View 在没有自动布局的 iphone 4 和 5/6 上有不同的位置的主要内容,如果未能解决你的问题,请参考以下文章

自动布局 – iPhone X/11 设备上的宽度不一致

如何在兼容 iphone 5 和 iphone 4 的笔尖中应用自动布局?

在启用自动布局和大小类的情况下更改视图宽度

iPhone IB 没有在 View as 部分显示,而不是 iPad:Xcode 8

Xcode 5 ios 7 中的自动布局。如何创建适用于 iphone 4 和 iphone 5 的应用程序

自动布局以编程方式导致 iphone 4 出现问题