我在 XCode 8.2.1、Swift 3 中有一个项目,我有很多 UILabel、UIButton 和 UITextFields 显示大量数据(本质上是表单)。该应用程序仅限 iPad,仅限横屏,适用于 9.0 及更高版本。
我尝试过手动分配约束(这需要花费大量时间),并且我尝试让 IDE 在 Storyboard中“添加缺失的约束”和“重置为建议的约束”。如果我从 VC 中删除所有约束,它的“形式”几乎是正确的,但仍有一些地方不合适。
我在 viewDidLoad() 或任何其他与定位相关的编码中什么都不做。
这里是 iPad Air 2(iOS 版本 10.2)模拟器中的相同 UIViewController,具有建议的约束:
a) 在需要大量控件的情况下,应该如何使用自动布局,其中间距和对齐是必不可少的? b) 为什么 XCode 会调整我专门指定大小的按钮和控件的大小?当 Storyboard 重新打开时,我必须时不时地调整大小。
感谢任何建议。与 7.3 及更早版本相比,我在布局上浪费的时间比在功能上浪费的时间要多得多。
最佳答案
这是我如何分解 iPad 应用程序中相当复杂的屏幕的示例。
主视图由两个容器 View 组成。左边的容器嵌入了一个 UIableViewContoller,右边的容器嵌入了一个 UIViewController。然后 UIViewController 本身嵌入另一个 UITableViewController。每个 Controller 通过委托(delegate)将必要的更改传达给容器链。
这使我能够更好地控制每个容器部分内的布局,因为对于任何给定的 Controller 来说,需要处理的约束更少。
其次,您可能有一些大型 Controller 类,可以控制您塞在其中的所有 View 的所有逻辑。当您将它们分解为它们自己的 Controller 时,您可以将大型类分解为单独的类,这些类仅控制它们的 UI 部分,从而使代码更具可读性和封装性。
关于ios - XCode 8.2.1 自动布局 : Issues with busy, 填充 UIViewControllers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41842983/