关于自动布局的概念,大家肯定都有所接触。有系统自带的AutoLayout和Masonry,以及我现在推荐的SDAutoLayout,它们在处理自动布局都各有优势。这次主要是谈谈对SDAutoLayout的运用。
先附上SDAutoLayout在github上的地址:SDAutoLayout
SDAutoLayout的作者已经把用法说的很详细的,另外网上也有很大用例,所以这里我就不详细说明了。
基本分为2步:
1. >> 设置cell高度自适应:
// cell布局设置好之后调用此方法就可以实现高度自适应(注意:如果用高度自适应则不要再以cell的底边为参照去布局其子view)
[cell setupAutoHeightWithBottomView:_view4 bottomMargin:10];
2. >> 获取自动计算出的cell高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
id model = self.modelsArray[indexPath.row];
// 获取cell高度
return [self.tableView cellHeightForIndexPath:indexPath model:model keyPath:@"model" cellClass:[DemoVC9Cell class] contentViewWidth:cellContentViewWith];
}
这里我着重讲解的是SDAutoLayout对xib的运用,个人是比较喜欢运用xib来进行项目的敏捷开发。在运用SDAutoLayout代码布局的时候,还是觉得有点浪费开发时间,
于是在xib的基础上用SDAutoLayout进行高度自适应开发。
在控制器里面还是和纯代码一样的用法,只是添加了一个xib文件。
现在附上demo:SDAutoLayoutDemo