美文网首页
2018-01-08 关于IOS UItableview cel

2018-01-08 关于IOS UItableview cel

作者: 逗比鑫 | 来源:发表于2018-01-09 10:10 被阅读0次

    注意,一下内容适用于ios8及以上的系统


    1.自适应行高类型

        1.使用xib自适应适应行高

        2.手工代码自适应适应行高


    2.使用xib自适应适应行高

        1.使用xib自定义一个UItableviewcell

        2.在自定义的UItableviewcell的contentView中,手动添加子控件和约束,contentView                               的子控件的约束要在垂直方向上给contentView一个压力,这个压力用来计算UItableviewcell的行高

        3.在定义UItableview的时候,使用以下代码:

            self.tableView.estimatedRowHeight = 100;  

            self.tableView.rowHeight=UITableViewAutomaticDimension;

    注意:self.tableView.estimatedRowHeight不能设置为0(虽然是估算行高)

        4.在代理方法里返回自定义的cell

        5.使用        self.tableView.rowHeight=UITableViewAutomaticDimension;的语句,可以不实现UItableviewcell行高的方法,或者在返回高度的方法中返回UITableViewAutomaticDimension

        6.reloaddata


    3.使用纯代码自适应行高

        1.新建一个类继承自UItableviewcell,在初始化方法中添加约束。

        注意1:如果使用系统添加约束的方法,contentview的所有子控件都要实现以下代        码:translatesAutoresizingMaskIntoConstraints=NO;这行代码的作用就是不把AutoresizingMask自动转化为Constraints;在使用xib自定义cell的时候添加约束,xib文件会自动把translatesAutoresizingMaskIntoConstraints属性设置为但是使用手工书写代码的时候就不会自定添加这句代码,

    如果使用masory添加约束则不需要使用translatesAutoresizingMaskIntoConstraints属性,具体原因不详(可能是masory在在代码里默认添加了)

    注意2:约束如果添加的数值,尽量使用整形的数值,如果设置约束的数值小数点后面位的个数超过1位,会产生和cell的contentview的高度约束有冲突,导致cell显示不正常

    2.在定义UItableview的时候,使用以下代码:

            self.tableView.estimatedRowHeight = 100;  

            self.tableView.rowHeight=UITableViewAutomaticDimension;

    注意:self.tableView.estimatedRowHeight不能设置为0(虽然是估算行高)

    3.在代理方法里返回自定义的cell

    4.使用self.tableView.rowHeight=UITableViewAutomaticDimension;的语句,可以不实现UItableviewcell行高的方法,或者在返回高度的方法中返回UITableViewAutomaticDimension

    6.reloaddata

    相关文章

      网友评论

          本文标题:2018-01-08 关于IOS UItableview cel

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