浅谈UITableView的自动布局
UITableView在很早就有了cell自动布局,但是现在可能很多人都没有使用,主要是因为大部分可能都是使用的frame来布局,不太习惯直接使用xib来画,或者是页面太复杂xib无法到达到要求。其实我想说的是,能使用xib画的我绝对不会手写一行代码,这也是看个人爱好的。
cell的自动布局的主要代码有:
在初始化tableview的时候设置rowHeight为UITableViewAutomaticDimension
再在代理设置row的高度时候- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return UITableViewAutomaticDimension; }
接下来最重要的一步就是cell里面的控件布局了,可以分纯代码或者xib
-
xib布局
xib布局最重要的就是,你cell的整体高度适中,且上边距下边距都得固定好
例如这个cell,外边的view上下左右边距都定好,view的子视图,图片的宽高是定好的所以是固定
上右下和宽高,积分这个label的约束时时左上右下,但是可能出现label文字过多换行高度高出图片的下边,所以图片的下边距需要设置为大于等于,这样这个cell整体约束就比较正常。不管你文字如何变化,都会自定布局,不需要认为计算。 -
代码布局
代码布局是用Masonry布局,思路和xib相同只要这个cell子视图约束都定好的话,就ok。