最近一周被项目的动态高度虐的很惨,感觉浪费了很多时间,但是值得高兴的是对动态高度的使用掌握了好多方法,并且知道了方法之间的区别和优缺点.

1.最常用的:

UITableView+FDTemplateLayoutCell

优点就不说了,博客大把的有;

缺点就是这个第三方必须将自己的每个子控件的约束是正确的,一旦哪个约束错误,或者是冲突,就会导致莫名的崩溃;

2.在控制器中对返回的数据根据文字多少自动计算高度:

对动态高度的控件根据文字的多少确定高度,从而得到总的cell的高度,对于行高将计算的结果存到对应的数据源model中,返回单元格高度的时候,直接返回model的高度即可.

注意如果可以对数据进行修改的话,记得调用的时候要在返回高度的协议方法里调用计算高度的方法,因为刷新表视图会走这方法,不会走创建cell的方法.

缺点就是:当内容过多的时候会计算不准确,还是有点坑.

3.在model中计算高度,设置属性单元格的高度属性,控制器直接返回即可;<和第二种方法类似,只是计算的地方不同,还可以在cell里计算,不过这个好像不行,因为创建cell的时候会先走高度的方法>

4.最简单的:

两句代码解决高度问题:

//    self.tableView.estimatedRowHeight = 200; //设置预估高度,只要不是差的太离谱就行

//    self.tableView.rowHeight = UITableViewAutomaticDimension;// 自定计算

话说只能在iOS8系统上才能使用,但看API在6.0就可以了,不过在7的系统上貌似会崩溃.<这个还是到去年的时候再用吧...嘿嘿>

5.最后项目中还是用的这个方法:MyLinearLayout

MyLinearLayout的实现充分参考了Android中的LinearLayout布局,但是却比LinearLayout更为强大,他几乎可以实现AutoLayout的所有功能甚至其不具备的功能。MyLinearLayout是一个基于流式布局的容器视图,我们只需要把子视图添加到MyLinearLayout中,并设置一些简单的约束参数那么就可以完成各种布局的要求了,而且后续中只要子视图的位置和大小进行变化都会触发容器视图里面的子视图进行重新布局。

缺点就是:性能不高,会一直的计算高度.

对高度的问题就总结到这里了,希望大神纠错或者是提出建议,我们一起学习,嘿嘿!!!!!!

iOS自适应行高方法及问题的更多相关文章

  1. 对tableView三种计算动态行高方法的分析

    tableView是一个神奇的东西,可以这么说,就算是一个初学者如果能把tableView玩的很6,那编一般的iOS的需求都问题不大了.tableView是日常开发中用烂了的控件,但是关于tableV ...

  2. C# 设置Excel数据自适应行高、列宽的2种情况

    Excel表格中,由于各种数据的复杂性,可能存在单元格中的数据字号大小.数据内容长度不一而出现,列宽过宽.过窄或者行高过大.过小的问题.常见的解决方法是调整行高.列宽.在Microsoft Excel ...

  3. Java 设置Excel自适应行高、列宽

    在excel中,可通过设置自适应行高或列宽自动排版,是一种比较常用的快速调整表格整体布局的方法.设置自适应时,可考虑2种情况: 1.固定数据,设置行高.列宽自适应数据(常见的设置自适应方法) 2.固定 ...

  4. rmReport 自适应行高(自动行高)

    这个问题 1.先中主项数据--属性--stretched(伸展):true 选中主项数据中的所有列--属性--其他属性--自动折行 --伸展

  5. iOS UITableView行高自行扩展

    myTableView.estimatedRowHeight = ; myTableView.rowHeight = UITableViewAutomaticDimension; 不需要实现 - (C ...

  6. ui-grid样式,表格高度自适应行高,没有滚动条,去掉表头

    前后端设置:

  7. iOS开发tips-UITableView、UICollectionView行高/尺寸自适应

    UITableView 我们都知道UITableView从iOS 8开始实现行高的自适应相对比较简单,首先必须设置estimatedRowHeight给出预估高度,设置rowHeight为UITabl ...

  8. UITableView、UICollectionView行高/尺寸自适应

    UITableView 我们都知道UITableView从iOS 8开始实现行高的自适应相对比较简单,首先必须设置estimatedRowHeight给出预估高度,设置rowHeight为UITabl ...

  9. ios label 自动计算行高详解

    在OC当中自动计算行高主要调用系统的 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #ffffff } span ...

随机推荐

  1. less嵌套规则

    嵌套,是less里面最有意思的小东西,比如说我们经常性的去写一些列表性的东西 html <ul class="list"> <li><a href=& ...

  2. PHP实现月份自动加1

    <?php date_default_timezone_set('PRC'); $date = date("Y-m-d"); $firstday = date('Y-m-01 ...

  3. Object类实现的方法

    ---恢复内容开始--- 1.Clone 对象浅复制,实现Clonable接口可调用,否则CloneNotSupportedException异常 2.getClass final方法,获得方法运行的 ...

  4. 7月新的开始 - Axure学习02 - 页面属性、钢笔工具

    页面属性 页面属性可以修改整个页面的效果 包含: 属性.对交互用力和事件的编辑 样式.对页面的样式操作 说明.可以对整个页面进行说明.以及样式的说明 钢笔工具:锚点.路径 锚点:钢笔点击之后的点就是锚 ...

  5. CSS实现宽度自适应100%,宽高16:9的比例的圖片或者矩形

    前言 图片的大小是多少,宽度一定,高度要始终自自适应为16:9. 解决 1通过js,程序算出绝对高度再进行设置.这是解决问题最容易想到的方法. 2.我们的原则是能用css实现的功能尽量用css,这有利 ...

  6. Java8-Lambda-No.01

    import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util ...

  7. D. AB-string ( 思维 )

    传送门 题意: 给你一个长度为n的字符串, 字符串只由 A B 组成. 问你这个字符串存在多少个 good string: ( 连续的一段子串 ) good string 的定义就是: 字符串中所有的 ...

  8. 2019.6.28 校内测试 T4 【音乐会】达拉崩吧·上

    考试的一道附加题~ 一看题目描述:把区间[l,r]里每个数异或上x,求区间[l,r]里所有数的异或和,这明显的要用数据结构或RMQ吧. 恩,所以正解就是线段树啦,至于树状数组行与否,不知道~ wate ...

  9. 2019.6.28 校内测试 T1 Jelly的难题1

    这题面有点难理解,建议直接跳到题意解释那一部分(虽然我觉得解释的不大对,但按照解释来做确实能AC): 按照“题意解释”的思路来思考这个题,那么就十分的简单了: 1.首先要读入这个字符矩阵,可以用cin ...

  10. c++ 容器反转

    // reverse algorithm example #include <iostream> // std::cout #include <algorithm> // st ...