SDAutoLayout
更新某个view的约束
- (void)updateLayout;
1X3矩阵
self.view.sd_equalWidthSubviews = @[self.view0, self.view1, self.view2];
self.view0.sd_layout
.leftSpaceToView(self.view, 0) // 左边距父view为0
.topSpaceToView(self.view, 100) // 上边距离父view为100
.heightEqualToWidth(); // 高度等于自身宽度
self.view1.sd_layout
.leftSpaceToView(self.view0, 0) // 左边距离view0为0
.topEqualToView(self.view0) // top和view0相同
.heightEqualToWidth(); // 高度等于自身宽度
self.view2.sd_layout
.leftSpaceToView(self.view1, 0) // 左边距离view1为0
.topEqualToView(self.view1) // top和view1相同
.rightSpaceToView(self.view, 0) // 右边距离父view为0
.heightEqualToWidth(); // 高度等于自身宽度
////// 此步设置用于实现cell的frame缓存,可以让tableview滑动更加流畅 //////
[cell useCellFrameCacheWithIndexPath:indexPath tableView:tableView];
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// >>>>>>>>>>>>>>>>>>>>> * cell自适应步骤2 * >>>>>>>>>>>>>>>>>>>>>>>>
/* model 为模型实例, keyPath 为 model 的属性名,通过 kvc 统一赋值接口 */
return [self.tableView cellHeightForIndexPath:indexPath model:self.modelsArray[indexPath.row] keyPath:@"model" cellClass:[DemoVC5CellTableViewCell class] contentViewWidth:[self cellContentViewWith]];
}
// 设置view0的圆角半径为自身高度的0.5倍
self.view0.sd_cornerRadiusFromHeightRatio = @(0.5);
// scrollview自动contentsize
[scrollView setupAutoContentSizeWithBottomView:self.view3 bottomMargin:20];
上下左右全为0
scrollView.sd_layout.spaceToSuperView(UIEdgeInsetsZero);
快速添加View
[scrollView sd_addSubviews:@[self.view0, self.view1, self.view2, self.view3, self.view4, self.view5, self.view6, self.view7, self.view8]];
高宽比
.autoHeightRatio(0.8); 为0,高度自适应
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// >>>>>>>>>>>>>>>>>>>>> * cell自适应设置 * >>>>>>>>>>>>>>>>>>>>>>>>
// 只需一行代码即可实现单cell以及多cell的tableview高度自适应
// 此升级版方法适用于cell的model有多个的情况下,性能比普通版稍微差一些,不建议在数据量大的tableview中使用,推荐使用“cellHeightForIndexPath:model:keyPath:cellClass:contentViewWidth:”方法同样是一步设置即可完成
return [self cellHeightForIndexPath:indexPath cellContentViewWidth:[self cellContentViewWith]];
}