XCode 8.2.1 Autolayout:繁忙、填充的 UIViewController 的问题
XCode 8.2.1 Autolayout: Issues with busy, populated UIViewControllers
我在 XCode 8.2.1 中有一个项目,Swift 3 我有很多 UILabels、UIButtons 和 UITextFields 显示大量数据(本质上是表单)。该应用程序是 iPad-only, landscape-only and targets 9.0 and above.
我试过手动分配约束(这需要花费大量时间)并且我试过让 Storyboards 中的 IDE "Add Missing Constraints" 和 "Reset to Suggested Constraints"。如果我从 VC 中删除所有约束,它得到的 "form" 几乎是正确的,但仍有一些地方不合适。
我在 viewDidLoad() 或任何其他定位相关编码中什么都不做。
这是我的 Storyboard 的截图:
这里是 iPad Air 2(iOS 版本 10.2)模拟器中的相同 UIViewController,具有建议的约束:
a) 在需要大量控件的情况下,应该如何使用自动布局,其中间距和对齐是必不可少的?
b) 为什么 XCode 调整我专门指定大小的按钮和控件的大小?当 Storyboard 重新打开时,我必须时不时地调整大小。
感谢任何建议。令人麻木,与 7.3 及更早版本相比,我在布局上浪费的时间比在功能上浪费的时间多得多。
这是我如何分解 iPad 应用程序中相当复杂的屏幕的示例。
主视图由两个容器视图组成。左边的容器嵌入了一个UIableViewContoller,右边的容器嵌入了一个UIViewController。然后 UIViewController 本身嵌入另一个 UITableViewController。每个控制器通过委托将必要的更改传达给容器链。
这使我能够更好地控制每个容器部分内的布局,因为对于任何给定的控制器,您需要处理的约束更少。
其次,您可能有一些大型控制器 class 来控制您塞入其中的所有视图的所有逻辑。当你将它们分解成它们自己的控制器时,你可以将 mega class 分解成单独的 classes,它们只控制它们在 UI 中的部分,从而使代码更具可读性和封装性。
我在 XCode 8.2.1 中有一个项目,Swift 3 我有很多 UILabels、UIButtons 和 UITextFields 显示大量数据(本质上是表单)。该应用程序是 iPad-only, landscape-only and targets 9.0 and above.
我试过手动分配约束(这需要花费大量时间)并且我试过让 Storyboards 中的 IDE "Add Missing Constraints" 和 "Reset to Suggested Constraints"。如果我从 VC 中删除所有约束,它得到的 "form" 几乎是正确的,但仍有一些地方不合适。
我在 viewDidLoad() 或任何其他定位相关编码中什么都不做。
这是我的 Storyboard 的截图:
这里是 iPad Air 2(iOS 版本 10.2)模拟器中的相同 UIViewController,具有建议的约束:
a) 在需要大量控件的情况下,应该如何使用自动布局,其中间距和对齐是必不可少的? b) 为什么 XCode 调整我专门指定大小的按钮和控件的大小?当 Storyboard 重新打开时,我必须时不时地调整大小。
感谢任何建议。令人麻木,与 7.3 及更早版本相比,我在布局上浪费的时间比在功能上浪费的时间多得多。
这是我如何分解 iPad 应用程序中相当复杂的屏幕的示例。
主视图由两个容器视图组成。左边的容器嵌入了一个UIableViewContoller,右边的容器嵌入了一个UIViewController。然后 UIViewController 本身嵌入另一个 UITableViewController。每个控制器通过委托将必要的更改传达给容器链。
这使我能够更好地控制每个容器部分内的布局,因为对于任何给定的控制器,您需要处理的约束更少。
其次,您可能有一些大型控制器 class 来控制您塞入其中的所有视图的所有逻辑。当你将它们分解成它们自己的控制器时,你可以将 mega class 分解成单独的 classes,它们只控制它们在 UI 中的部分,从而使代码更具可读性和封装性。