【问题标题】:Should I use autolayout in my new Xcode project?我应该在我的新 Xcode 项目中使用自动布局吗?
【发布时间】:2016-06-19 01:35:30
【问题描述】:
自动布局让事情变得简单,但在横向方面仍然让我很困惑。我必须同时保留横向和纵向屏幕。我的应用程序仅适用于 iPhone,即从 iPhone 5 到 iPhone 6s+。
我需要使用什么尺寸等级?一切似乎都那么混乱。每个约束都相互冲突。我在理解前导、顶部、底部、轨迹空间方面没有问题。但是如果设备旋转了呢?我如何管理事情?请帮忙!
【问题讨论】:
标签:
ios
iphone
autolayout
xcode7
landscape-portrait
【解决方案1】:
我认为你不需要尺寸等级,除非你确定不同的屏幕尺寸或旋转之间会有显着的 GUI 变化。
在旋转方面,当设备旋转时,约束不会改变它们的方向。他们仍然坚持他们以前的立场。
对于尺寸等级,这取决于应用的设计。最有可能的是,如果您正确设置了约束,那么整个设备系列只需一个尺寸等级就可以了。
例如,如果您选择对以平板电脑为中心的变体进行重大更改,则可以根据设备类型或屏幕尺寸在代码中进行更改,或使用尺寸等级。 仅使用尺寸类来在各种屏幕尺寸之间进行布局变化,这些变化无法单独使用约束来处理。
【解决方案2】:
This site 是尺寸等级的有用视觉参考。
如果您要制作仅适用于 iPhone 的应用程序,那么您基本上需要知道的是,每部 iPhone 在纵向使用常规高度,在横向使用紧凑高度。因此,请关注这两个尺寸等级。
将故事板大小类(在画布下方的栏中)设置为 wAny hRegular。然后选择您的视图控制器并(在属性检查器中)将尺寸设置为 iPhone 4 英寸(或您选择的其他设备)并将方向设置为纵向。 (这些视图控制器设置不与 size 类交互,但可以更轻松地查看运行时的情况。)现在设置纵向布局约束。
然后将大小类设置为 wAny hCompact。将视图控制器的方向更改为横向。现在设置横向布局约束。