美文网首页iOS_Xib
Cell的Xib方式自适应高度

Cell的Xib方式自适应高度

作者: li_礼光 | 来源:发表于2019-01-25 11:54 被阅读15次
    回想一下,遇到过的tableViewCell高度计算的有多少种?

    (个人认为)最简单粗暴的是,使用MVVM模式,

    • 在对应的ViewModel中添加你需要的高度属性.
    • 在请求完成网络数据之后,在ViewModel中计算对应控件所需要的高度内容.
    • 直接使用ViewModel中的数据对Cell进行高度赋值.

    这种方式通过纯代码操作.可操作性强.缺点是, 耗时,代码看起来臃肿.


    用XIB的方式动态计算Cell高度.

    在探究FDTemplateLayoutCell的时候自己也简单写了个Demo : Demo.

    最开始的时候以为FDTemplateLayoutCell中有特别的计算方式,后来发现其实是没有的. 预先通过Xib的自动布局设置好对应的高度属性.


    1.准备数据源

    ps : 图片资源自己准备就好,放在Assets.xcassets


    数据源

    2.获取数据源&创建TableView

    初始化数据源&创建TableView

    3.设置模型

    模型

    4.自定义Cell.Xib

    cell.m Xib

    5.注意点

    注意点一 注意点二

    总结 :

    主要高度控制在Xib的自动布局中.

    • imageView中,设置了一个placeholder尺寸,右边边距>= 你需要的值
    • 最底部Label. 垂直高度内容优先级调低,也就是当其他所有人设置好多有的内容之后,在考虑自己.也就是考虑Cell的最终高度了.
    • 注意Label的lines设置为0.

    效果图 :

    Demo运行

    最后 :

    你会发现, 实际并没有进行任何的cell的高度计算,也没用其他第三方框架,同样实现了高度自适应的效果.

    • 是不是瞬间觉得MVVM的方式,是有需要写多少的代码,是有多麻烦.
    • 是不是瞬间觉得Xib的动态高度计算是有多方便.

    Xib的动态高度计算 : 其实也有个弊端就是,后续迭代修改的时候,一堆的Constraints,改起来是多不顺心.



    那为什么还要使用 FDTemplateLayoutCell ?

    回到前面所说的,最开始的时候以为FDTemplateLayoutCell中有特别的计算方式,后来发现其实是没有的. 预先通过Xib的自动布局设置好对应的高度属性.

    FDTemplateLayoutCell 主要做的事情是,性能方面的优化.

    优化UITableViewCell高度计算的那些事 里有指出为什么使用
    "究竟有没有既能省去算高烦恼,又能保证顺畅的滑动,还能支持 iOS6+ 的一站式解决方案呢?"

    相关文章

      网友评论

        本文标题:Cell的Xib方式自适应高度

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