美文网首页
TableView不走cellForRowAtIndexPath

TableView不走cellForRowAtIndexPath

作者: coder_小玖 | 来源:发表于2018-06-06 23:09 被阅读194次

    今天突然同事问我,为啥他的tableview走了numberOfRowsInSection代理却不走cellForRowAtIndexPath。这个问题在我刚开始写代码的时候确实遇到过,当时也找了很久,才发现原来是我tableview的frame高度为0,怀疑苹果在代理里面是加了判断的。

    现在总结一下,可能出现这种情况的原因有三种:

    第一种:tableview的代理没设置

            不用多说,要执行代理,是必须设置delegate,如果delegate没设置,所有代理方法都不会走。

    第二种:本视图设置了代理,但是在其他视图有将代理设置给了别的对象。

            这种情况也是会发生的,例如 aView 上添加了 tableview,然后 bView上添加了aView 如果此时,在tableview设置代理给aView(tableview.delegate = aView)在bView中也设置了(bView.aView.tableView.delegate = bView),这样 tableview的只会跑bView中的相关代理,而aView中的代理方法就无效了

    第三种:tableview的frame有问题

    如文章开头说的,当我们将tableview的高度设置为0的时候,就算有数据,也不会跑cellForRowAtIndexPat代理,而且这种情况比前两种特殊,这个是会走numberOfRowsInSection代理,但不跑cellForRowAtIndexPath。

    记录一下平常遇见的问题,也方便大家学习,免得大家踩到坑里,好久才出来。

    相关文章

      网友评论

          本文标题:TableView不走cellForRowAtIndexPath

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