OGeek|极客世界-中国程序员成长平台

标题: ios - 将 iOS 项目转换为自动布局 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:37
标题: ios - 将 iOS 项目转换为自动布局

我使用的是 Xcode 6 和 iOS 8。该项目是从 iOS 5 开始编写的,而不是使用自动布局。因此,有大量的自动调整大小和大量通过操纵框架来移动控件和 View 的代码。

我知道两者都可以使用,但您是进行完整的转换,消除对框架属性的所有引用,还是只保留那些有效的?

例如,动态创建一个控件,该控件将放置在 View 中,但不需要在该 View 中操纵其位置。你会摆脱 initWithFrame: 并通过约束来完成它,还是直接离开它?

在我看来,两者可以共存,只要控件在创建和放置后是静态的。



Best Answer-推荐答案


您可以在同一个项目甚至同一个 View Controller 中混合使用自动布局和框架代码。如何迁移到仅使用自动布局取决于您。你有多少时间?现有的框架代码维护起来有多复杂?

我们在应用中采用的方法是创建一个 Storyboard并向其中添加 View Controller 。我们将这些映射到我们现有的 VC 类,然后测试它们的外观。

我们开始用 Storyboard中的 View 替换在代码中创建的 View ,使用约束来定位它们。对于表格 View ,我们用 Storyboard 中的原型(prototype)单元格替换了许多定义自定义单元格的丑陋 .xib 文件。我们还用 Storyboard 中的 View 替换了表格页眉和页脚。

我们发现将整个 View Controller 转换为全自动布局方法通常效果最好,从而消除对框架的任何使用。一些 View Controller 具有非常复杂的框架逻辑,我们不去管它——我们甚至没有在 Storyboard中定义这些。

总的来说,我们将大约 25 或 30 个 View Controller 迁移到 Storyboard 中,并且做得非常好。尽管偶尔会让人头疼,但我还是 Storyboard和自动布局的忠实粉丝。它使我们向更大设备的过渡非常顺利。

关于ios - 将 iOS 项目转换为自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26534828/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4