一年前,我看过几个关于Auto Layout优点的Apple WWDC主题演讲,但是当我在真实世界的项目中尝试它们时,我体验到当你在Storyboard上移动一些UI元素时,它会破坏一半约束,使自动布局的所有好处无效。
直到现在我一直在使用Springs& Struts非常成功,并且与KVO一起观察视图的 frame 路径,只需几行代码即可优雅地处理大部分旋转重新调整。
所以现在iOS 7问世了,我有一个问题:我可以继续成功使用Springs& Struts仅适用于iOS 7应用程序并避免使用自动布局?或者我这样做会失去什么?学习和掌握在不同情况下使用自动布局的技巧可能需要几天的时间,所以我真的很感激一些有争议的建议。
已解决:感谢Max的回答,我开始深入研究Auto Layout;虽然Null
在他的回答中是正确的 - 你实际上可以使用Springs& iOS 7上的Struts没有太大麻烦,Auto-Layout功能强大。
显然在Xcode 5中,修复了以下问题:
要删除约束,您实际上不需要执行古老的萨满雨舞蹈。您删除它并且布局进入警告模式,指示您需要解决的问题才能使自动布局工作。
当你移动东西时,你的约束不会改变;仅在Interface Builder中查看框架更改。
当Interface Builder中的框架实际上与使用布局约束框架计算的框架不同时,Interface Builder将使用红色虚线指示该元素的运行时框架。最后它是正确的。谢谢,Apple。
这是WWDC 2013会话的链接,演示如何在Xcode 5中使用所有这些。您需要Apple开发者帐户才能查看。
所以现在我的选择是自动布局。谢谢大家。
答案 0 :(得分:22)
自动布局是未来,而Springs& Struts已成为过去。如果你继续使用Springs&随着新标准 - 自动布局 - 变得普遍,Struts你将处于劣势。
此外,Springs& Struts对复杂视图无效。自动布局功能更强大。
对于iOS 7,它还处于早期阶段,虽然我不确定其含义是什么, iOS 7 UI Transition Guide特别提到使用自动布局将简化转换过程:
如果您的应用使用自动布局,则您的工作会更轻松。在Xcode 5中,自动布局可以帮助应用程序适应新的UI元素指标,并适当地响应文本大小的动态变化。如果您正在转换iOS 6应用程序或需要同时支持iOS 6和iOS 7,则自动布局特别有用。
如果您没有使用自动布局,现在可能是开始的最佳时机, 特别是如果您需要支持多个版本的应用程序。如果 你使用手动或程序化布局技术,你是负责任的 确保在文本大小时适当调整布局 变化。
就个人而言,我从Xcode 4.6.3开始就一直在使用自动布局。最初的学习曲线是痛苦的,但在那之后它真的变得愉快。我绝对不会回到Springs& Struts或使用框架手动计算指标。
答案 1 :(得分:4)
是的你仍然可以使用Springs& iOS7中的Struts,它可以在我的beta应用程序中运行,虽然我很难修复我的视图,但最终它可以工作。
请考虑阅读以下内容:
如果您的应用程序已使用自动布局,则使用开发工具 自动调整布局到用户的查看设备 分辨率和方向,你过渡到iOS7将是公平的 直截了当。如果没有,我们建议您评估是否应该 开始。你应该开始的最大原因是现在使用iOS7 用户可以更改文本大小,以及您的文本大小 反过来应用程序将通过更新来尊重这一点 布局以支持所需的文本大小。如果你正在使用“弹簧和 Struts“或程序化布局,那么你将需要花费 相当多的时间操纵视图以获得您的布局 对。这当然也会影响您支持的决策 iOS6的。
参考here。
答案 2 :(得分:1)
您应该使用Auto layout,因为它是使用约束的更新方式