美文网首页
小尝 SDAutoLayout

小尝 SDAutoLayout

作者: Bo_cake | 来源:发表于2017-01-17 14:35 被阅读0次

    一、什么是SDAutoLayout

    用于iOS 中屏幕适配的第三方框架,SDAutoLayout包含了Cell的自适应高度。相比Mansory的简单易用,SDAutoLayout的应用可能会多费些心思。

    二、图例介绍

    这里的核心就是相互参照概念。

    三、具体操作

    一、 XXXSapceToView(view, space)

    这里XXX代表top,left, right,bottom。该方法传入两个参数,代表距离这个View的距离多少

    二、XXXEqualToView(view)

    这里XXX代表top,left, right,bottom。该方法传入一个参数,代表与这个View的top,left, right,bottom对齐

    三、XXXIs

    这里XXX指定View的属性如x,y,width,height等,代表给该属性指定一个值

    四、autoHeightRatio

    高与宽的比例,label的话可以直接传入0代表高度自适应。

    五、高度宽度自适应

    /** 设置Cell的高度自适应,也可用于设置普通view内容高度自适应 */

    - (void)setupAutoHeightWithBottomView:(UIView *)bottomView bottomMargin:(CGFloat)bottomMargin;

    /** 用于设置普通view内容宽度自适应 */

    - (void)setupAutoWidthWithRightView:(UIView *)rightView rightMargin:(CGFloat)rightMargin;

    其中高度自适应是最常用到的

    六、清空之前的约束

    /** 清空之前的自动布局设置  */

    - (void)sd_clearAutoLayoutSettings;

    这个方法对于由模型决定的Cell布局而言,是非常重要的!在每次设置模型的时候,Cell的布局就会相应的变化,这时为了解决Cell重用问题,在重新设置布局前都需要调用该方法!

    Cell高度自适应

    一、设置cell高度自适应

    // cell布局设置好之后调用此方法就可以实现高度自适应(注意:如果用高度自适应则不要再以cell的底边为参照去布局其子view)

    [cell setupAutoHeightWithBottomView:_view4 bottomMargin:10];

    二、获取自动计算出的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];

    要注意的是,这里的keyPath对应你Cell的model变量名

    一些坑

    在Mansory中,button的布局我们可以只约束x,y,但SDAutoLayout中,button的约束宽高也是需要指定的。如果大家想了解SDAutoLayout的更多高级使用,建议大家下载该框架的Demo看看,里面有许多丰富的例子告诉你如何高级的使用SDAutoLayout。

    新版SDAutoLayout更新内容:

    1、增加设置偏移量offset功能

    2、修复之前button作为父视图时内部控件不能自动布局问题

    2.1 DemoVC0 UIButton内部添加自定义视图布局

    2.2 DemoVC2 UIButton本身imageView、titleLabel布局

    3、DemoVC2中增加

    3.1 设置一排固定间距自动宽度子view

    3.2 设置一排固定宽度自动间距子view

    4、增加DemoVC10scroll任意布局内容自适应

    实际结合了3.1和UIScrollView自适应

    5、增加DemoVC14xib的cell高度自适应

    xib这个个人感觉特别爽

    6、其他更新及优化

    相关文章

      网友评论

          本文标题:小尝 SDAutoLayout

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