在相对布局过程中,会遇到各种布局的问题,整理如下:

1. 整体居中 - *

该效果中,由于所有的子视图都没有居中,因此不能通过中心往两侧布局的方式整体居中。

思路是将各p_w_picpathView从左往右按1-7编号,每个p_w_picpathView的左边对齐前一个p_w_picpathView的右边。

再在所有p_w_picpathView外侧嵌套一个UIView,#1的左边对齐父View的左边,父View的右边对齐最后一个p_w_picpathView(#7)的右边。然后将父View的centerX及centerY对齐整个view的centerX/centerY,父view的bottom对齐最底两个p_w_picpathView任一个的bottom。

2. 根据UILabel中text长短自动调整 - **

TODO

3. UITextView高度随兄弟视图多少调整 - ***

TODO

4. 通过snapKit组件实现swift的autolayout - *

snapKit是基于swift语言的第三方autolayout库,通过它可以简化设置约束的代码量。但由于其定义的约束对象从NSLayoutConstraint变为了Constraint,更新约束的方式也相应的发生了变化,比如常用的更新相关约束的constant方法,通过NSLayoutConstraint来定义约束的话,一般是这样:

shareCircleBottomConstraint = NSLayoutConstraint(item: shareCirclesView, attribute: .Bottom, relatedBy: .Equal, toItem: view, attribute: .Bottom, multiplier: 1.0, constant: 0)shareCircleBottomConstraint.active = true;

然后调用shareCircleBottomConstraint.constant= 0来更新

而通过snapKit中的Constraint来定义约束的话,则简化为:

然后调用

shareCircleBottomContraint.updateOffset(0)

来更新