美文网首页
SDAutoLayout

SDAutoLayout

作者: 大胖_康 | 来源:发表于2017-07-05 10:49 被阅读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]];

    }

    相关文章

      网友评论

          本文标题:SDAutoLayout

          本文链接:https://www.haomeiwen.com/subject/miifhxtx.html