indexpath.row is starting from 1 instead of 0

随声附和 提交于 2019-12-10 03:48:51

问题


i am facing a strance issue with a uitableview. sometime when my table's datasource/numberofrowsinsection has 3 values, cellforowatindexpath starts from 0-1 instead of 0-0. can someone help me out finding the possible reasons for this issue to happen. even tried printing the logs but the logs were shown for 0 -1 and 0 -2 but not for 0 -0. That means it is not getting called for the first row i.e 0 -0.


回答1:


tableView:cellForRowAtIndexPath: is called as needed to display a cell, if a cell is not going to be displayed it is not called. If row 0 is not being displayed section-cell 0-0 will not be called.




回答2:


Like Zaph stated, tableView:cellForRowAtIndexPath: is called whenever a table wants to display a cell for a given index path, so if you're not getting an index path with a row of 0 ever, it means you're likely doing something that prevents that cell from getting shown.

My first suggestion would be to investigate your tableView:heightForRowAtIndexPath: method, and 1) check if it's getting called with an index path row of 0, and 2) make sure something > 0 is being returned.

The fact that you're seeing it on iOS 8 only does not necessarily mean something native is broken, but might instead suggest that some of your logic which contributes to the above methods is affected by iOS 8 changes. iOS 8 had thrown off the way I was doing text size calculations, so perhaps something less obvious like that is resulting in returning a height not greater than 0.




回答3:


You may first check number of sections and number of rows. If row number of a section returned 0, that section will not be called.




回答4:


The thing that worked in my case is I have written method estimatedHeightForRowAt method in my class. When I commented that method, the code is working fine..

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {

}

I have removed the above method from my code. It saved my day :)



来源:https://stackoverflow.com/questions/26486511/indexpath-row-is-starting-from-1-instead-of-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!