我正面临一个与uitableview相关的问题。 有时当我的表的数据源/ numberofrowsinsection有3个值时,cellforowatindexpath从0-1而不是0-0开始。 有人可以帮助我找出这个问题发生的可能原因。 甚至尝试打印日志,但日志显示为0 -1和0 -2但不是0 -0。 这意味着它不会被调用第一行,即0 -0。
答案 0 :(得分:5)
tableView:cellForRowAtIndexPath:
来显示单元格,如果不显示单元格则不调用它。如果没有显示第0行,则不会调用section-cell 0-0。
答案 1 :(得分:3)
就像Zaph所说的那样,每当一个表想要显示给定索引路径的单元格时,就会调用tableView:cellForRowAtIndexPath:
,所以如果你没有得到一行0的索引路径,那就意味着你& #39;可能会做一些阻止该单元显示的东西。
我的第一个建议是调查您的tableView:heightForRowAtIndexPath:
方法,1)检查是否使用索引路径行0调用它,并且2)确保某些内容>正在返回0。
您在iOS 8上看到它的事实并不一定意味着本机被破坏,但可能会建议您的一些有助于上述方法的逻辑受到iOS 8更改的影响。 iOS 8已经抛弃了我进行文本大小计算的方式,所以也许那些不太明显的东西会导致返回不高于0的高度。
答案 2 :(得分:0)
您可以先检查部分数量和行数。如果某个部分的行号返回0,则不会调用该部分。
答案 3 :(得分:0)
在我的情况下起作用的是我在类中编写了EstimatedHeightForRowAt方法。当我评论该方法时,代码工作正常。
func tableView(_ tableView:UITableView,EstimateHeightForRowAt indexPath:IndexPath)-> CGFloat {
}
我从代码中删除了上述方法。它挽救了我的一天:)