之前的布局一直使用Autolayout进行适配,用着用着就习惯了,但是对有些需求使用还是达不到很到的效果,然后就在网上学习了一些关于布局的三方库Masonry、SDAutoLayout。个人觉得SDAutoLayout用起来更加方便,当然两者的效率方面快慢就没有研究过,但是感觉没多大区别。
这里我只是将一些方法做详细说明,它传递值的方式是通过Block块传输的。
比如如下代码:
leftSpaceToView 到参照View左边的距离是margin
topSpaceToView 到参照View顶部的距离是margin
leftEqualToView 表示view的某一属性等于参照view的对应的属性值
widthIs 表示view的宽等于参数数值
heightIs 表示view的高等于参数数值
centerYEqualToView centerY与参照view相同,参数为“(View)”
centerXEqualToView centerX与参照view相同,参数为“(View)”
autoHeightRatio 自适应高度,传入高宽比值,label可以传0实现文字高度自适应
spaceToSuperView 传入UIEdgeInsetsMake(top, left, bottom, right),可以快捷设置view到其父view上左下右的间距
setupAutoHeightWithBottomView
设置Cell的高度自适应,也可用于设置普通view内容高度自适应
如果是TableView则需要获取自动计算出的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];
}