我已经看了很多关于SO的教程,谷歌帖子和问题,但我仍在努力为iPhone应用程序布局页面的最佳方式。
部分问题是许多教程和问题都很陈旧,并讨论过去某些时候可能最佳的方法。
现在,在2015年5月,什么是最简单的方法来处理文本字段和图像布局等问题,以便在常见的iPhone中正常显示,即iPhone 4,5,6和6Plus?
是否有必要使用约束?我走了这条路但发现它非常耗费人力?
您可以在Stanford 193P教程中使用蓝线吗?或者是否有任何经验法则来布局图片或文本框,以便它在多种格式中看起来很好,即一些点或使用蓝线。
Xcode 6.0中的故事板现在已经达到600x600了,所以很多时候你的布局在模拟器中看起来很糟糕。但模拟器不是真正的iPhone。
感谢有关正确方法的任何建议。
答案 0 :(得分:2)
我的回答是自动布局,换句话说创建约束
通过创建布局,可以轻松放置视图
答案 1 :(得分:1)
你基本上有两个选择;约束或框架数学。两者都有其益处和损害。
布局约束的好处是您可以找出子视图与其超级视图之间的通用关系。 (例如,它总是距离前沿和后缘20点,或者它总是死点x和y)一旦你这样做,你只需要编写一次布局代码,它就可以在所有设备屏幕尺寸上工作。此外,如果您计划在iPhone上支持iPad或旋转,那么支持该功能所需的工作很少。另一个巨大的好处是,如果视图框架发生变化,它将负责调整大小并为您布置所有子视图,这样您就可以修改容器的大小,而不必重置所有子视图&# 39;手动儿童的框架。
约束更加现代化#34;比帧数学和Apple的首选方法。
约束的问题是代码更冗长。观点也取决于他们的超级自我表现。如果一切都正确完成,那就很有效。但是,如果你在一个视图中添加约束时出错,它就有可能抛弃依赖于它的所有其他东西。一旦你弄明白了,它就会完全符合它所宣传的内容。但是,在我看来,达到这一点可能比明确设置框架更复杂,因为有更多移动部件。
帧数学有时候仍然存在。它具有快速和相对简洁的优点。当iPhone手机的显示尺寸相同时,它的效果非常好,如果你在一个有保证矩形的视图中进行布局,那么没有理由需要避免设置框架。
框架的问题在于,您需要支持运行iOS 8的所有设备。如果您使用框架进行布局,则意味着您必须编写5组不同的布局代码来支持4s,5,6, 6+,iPad和另外5套,如果你想让它们全部旋转。这并不总是站得住脚。
最后,无论您的包含视图是否具有保证的高度和宽度,它都会降低。如果答案是肯定的(例如,在具有静态宽度和高度的集合视图单元格内部进行布局),我会倾向于框架。如果没有,自动布局是可行的方法。