Xcode 6 Auto Layout - 所有设备的 UI 元素之间的恒定水平间距
Posted
技术标签:
【中文标题】Xcode 6 Auto Layout - 所有设备的 UI 元素之间的恒定水平间距【英文标题】:Xcode 6 Auto Layout - Constant horizontal spacing between UI elements across all devices 【发布时间】:2015-03-18 20:43:27 【问题描述】:我正在 Xcode 6 上为 iPhone 5s、iPhone 6 和 iPhone 6+ 设计一个 ios 7+ 应用程序。我想为所有这些设备创建一个单一的设计,所以我使用自动布局。我希望 UI 元素之间的间距在所有设备上都相同,但我无法做到这一点。这是我的一个UIButtons
在 iPhone 6 模拟器上 100% 的屏幕截图:
(白框是间隔视图,但不要担心。)
如您所见,UIButton
的左边缘到UIViewController
的左边缘的水平间距为 37px。在 iPhone 5s 上,这个间距是 32px。我希望所有设备上的间距为 32px。在自动布局上,我将水平间距约束设置为常数 32。即使使用此设置,它似乎也在缩放间距。
如何防止水平间距缩放?
【问题讨论】:
您是否有相对于左侧边距的约束?如果是这样,请关闭边距。由于默认选择了外部视图约束,因此很容易结束边距。 【参考方案1】:我认为您的应用尚未支持 iPhone 6。如果您的应用与 iPhone 6 兼容,则所有设备的间距将为 32 像素。否则,iOS 会绘制 320 像素宽度的屏幕并将其缩放以适合实际屏幕宽度。这就是为什么您在 iPhone 6 中获得 37px 的原因。
要使应用程序与 iPhone 6 兼容,请创建启动屏幕文件(新文件 > iOS > 用户界面)并将其指定为项目设置中的启动屏幕文件。然后应用将以设备的原生屏幕分辨率启动。
【讨论】:
以上是关于Xcode 6 Auto Layout - 所有设备的 UI 元素之间的恒定水平间距的主要内容,如果未能解决你的问题,请参考以下文章
Xcode Using Auto Layout 不会为每个 iphone 型号优化屏幕 [关闭]
转 iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束
使用 Xcode 8 的 Interface Builder 中的 Auto Layout 和 Trait Variations 正确设计的 Storyboard 视图在 Simulator 和 De