布局方式
布局方式我知道三种:1 纯代码计算控件尺寸,不使用系统和第三方工具 2 使用系统自带函数或者使用 Masonry 等第三方框架 3 使用系统自带 StoryBoard。
StoryBoard 胡诌
1 子控件和父控件上拖拖约束就完了。
[注] 在不同尺寸屏幕上显示相同的内容(对应的,子控件的大小肯定会发生变化)。 2 在大尺寸屏幕上显示更多的内容(控件在所有屏幕上的显示尺寸是一样的,在大屏幕上能显示的内容更多) 以上两种情况,可以查看苹果 APP Store 参考。
2 约束添加原则
1 能不多加就不多加,一个控件的基本约束保证在 (1) 水平和竖直方向 (2) 宽度和高度的约束。
2 比例约束、优先级约束可以解决许多不可能的任务,不要多加。
3 解决黄色警告,关注控制台打印,及时解决,不在约束问题上出错。
[注] 1 StoryBoard 中的约束最终操作的也是控件的位置 (x,y) 和尺寸 (hight,width),不能站在后来者的角度说前者的不好。在开发中,要保持灵活性,应该根据实际情况选择代码+Xib 或者 StoryBoard 来完成任务。
2 使用 StoryBoard 的几个可能存在的问题
(1) 出现在控制台上的约束问题不好调试 (目前我也没有好的解决方法,只有在对应位置将约束删掉重新添加)。
(2) 版本管理不好控制。针对开发团队规模调整,如果 2-3 人的小团队,可以只使用一个 Git 分支,按照顺序提交代码。如果是中大型团队,可以(1)专人管理 StoryBoard (2)按模块区分,一个模块对应一个 StoryBoard 文件。
3 最最重要的问题
一定要亲自动手拖!别人写的 StoryBoard 和 AutoLayout 的文章可以为你提供思路,但是请自己思考为什么这么做,然后不要“硬搬”文章的套路。孰能生巧。
3 关于两种形式
3.1 不同屏幕上控件内容相同(定间距)
此时,控件肯定被拉伸了(水平伸缩、中心放缩、竖直伸缩等)。不变的是谁?控件与屏幕上下左右四条边的距离(简称间距)!
水平或者竖直拉伸:以水平拉伸为例,保持控件水平位置不变(可以设置距上距离不变),设置到屏幕两边的距离为定值。
中心放缩:居中显示的视图 做法1:设置控件到上下左右的距离为定值,自然会被拉升。做法2:设置控件为水平竖直居中,然后设置控件的宽高和屏幕视图之间的比例为某一个定值,同样能实现。设置比例时应该注意两个关系控件的前后关系。
这里控件的大小一般在不同屏幕上可不是定值哦。
3.2 大屏幕上显示的内容多一点(定尺寸)
在所有屏幕上的控件大小都相同,但是现实内容多寡是不同的。这里的控件的大小就可以使用定值了。
例子:APP Store 中的 APP 轮播图。
4 实现新浪微博的个人中心详情页
将约束拖到控制器中进行动态调整。
网友评论