ios - XCode 8.2.1 自动布局 : Issues with busy, 填充 UIViewControllers

标签 ios xcode ios-autolayout

我在 XCode 8.2.1、Swift 3 中有一个项目,我有很多 UILabel、UIButton 和 UITextFields 显示大量数据(本质上是表单)。该应用程序仅限 iPad,仅限横屏,适用于 9.0 及更高版本。

我尝试过手动分配约束(这需要花费大量时间),并且我尝试让 IDE 在 Storyboard中“添加缺失的约束”和“重置为建议的约束”。如果我从 VC 中删除所有约束,它的“形式”几乎是正确的,但仍有一些地方不合适。

我在 viewDidLoad() 或任何其他与定位相关的编码中什么都不做。

这是我的 Storyboard 的截图: enter image description here

这里是 iPad Air 2(iOS 版本 10.2)模拟器中的相同 UIViewController,具有建议的约束: Storyboard rendered using reset/suggested constraints

a) 在需要大量控件的情况下,应该如何使用自动布局,其中间距和对齐是必不可少的? b) 为什么 XCode 会调整我专门指定大小的按钮和控件的大小?当 Storyboard 重新打开时,我必须时不时地调整大小。

感谢任何建议。与 7.3 及更早版本相比,我在布局上浪费的时间比在功能上浪费的时间要多得多。

最佳答案

这是我如何分解 iPad 应用程序中相当复杂的屏幕的示例。

enter image description here

主视图由两个容器 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/

相关文章:

ios - 尝试在 Plist 中写入数据 - 几乎完成

iphone - ios MPMoviePlayerController 无法在模拟器上播放本地文件

ios - Facebook 应用程序包标识符

objective-c - objective-c : constant strings and c strings

swift - 动态调整 UITableViewCells 的大小

ios - 对于自定义 UIView() 类,不会自动调整 UITableView 标题部分的高度

ios - 推送一个重复的 View Controller

objective-c - 如何提高滞后的 UIView 动画的性能

ios - 图像点击识别点击的位置 iOS

ios - 属性初始值设定项在 'self' 可用错误 Swift 之前运行