zoukankan      html  css  js  c++  java
  • iOS tableview的常用delegate和dataSource执行顺序

    在这次项目中遇到了一个特别奇葩的问题:表视图创建的cell在7以上的系统能正常运行显示,在模拟器上就不能正常实现......为解决这个问题,纠结了好久......

    对在7系统上不显示的猜测:

    用masory设置约束不对,导致cell不显示;

    对这个猜测也弄了好久,对一个个控件的约束都好好检查了一遍,发现实在是没有错的...后来迫不得已,自己不用masory,直接用frame约束,发现还是不显示,这才对masory的问题放弃了....

    最后考虑了下:他不是内容不显示,他是直接这些cell不显示,有没有可能是cell的高度问题,通过打断点,调试,发现确实是cell的高度问题,导致cell的不显示,知道问题的原因就好办了:

    因为我的cell的高度动态的,我是在cell赋值的时候根据文字的多少计算label的高度,把每个cell的高度存到model里,控制器直接返回cell的高度即可.发现在cell的高度的方法里,cell的高度直接都返回为0了,导致cell的不显示了.

    这时候想到了iOS tableview的常用delegate和dataSource执行顺序:

    常用的也就是下面几个方法了:

     1 #pragma mark - Table view data source  
     2 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;  
     3 先看有几个section 默认1个
     4 
     5 #pragma mark - Table view delegate  
     6 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;  
     7 标题头的高度
     8 
     9 #pragma mark - Table view data source  
    10 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;  
    11 *******每个section中有多少行cell  
    12 
    13 #pragma mark - Table view delegate  
    14 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;  
    15   ********每个cell的行高
    16 
    17 #pragma mark - Table view data source  
    18 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;  
    19 *********初始化每个cell的内容  
    20 
    21 #pragma mark - Table view delegate  
    22 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;

    创建表视图的时候会先调用cell的高度的方法,再创建cell,一开始高度为0,cell当然不显示啦......

    所以,比较傻一点的方法就是在请求到数据的时候计算cell中可变的label的高度,存到model中即可,这样也是最保险的方法.

    虽然...功能实现了..可我还是纠结的问题没有解决:

    为什么在模拟器和7以上的系统上可以正常运行,在7的系统就不行呢????要说高度都为0啊....

    有知道的朋友可以回复我哟....我们共同进步,加油!!!

  • 相关阅读:
    关于display:flex
    关于兼容性——百分比对于IE浏览器的影响
    谈谈一个菜鸟写了一段时间的静态页面
    2016.01.02
    课时21:函数:lambda表达式
    课时20:内嵌函数和闭包
    课时19:函数:我的地盘听我的
    课时18:函数:灵活即强大
    课时17:函数:Python的乐高积木
    课时16:序列
  • 原文地址:https://www.cnblogs.com/pengsi/p/5673385.html
Copyright © 2011-2022 走看看