SDAutoLayout

2017-07-05  本文已影响55人  大胖_康

更新某个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]];

}

上一篇下一篇

猜你喜欢

热点阅读