今天同事遇到一个问题,UITableView走numberOfRowsInSection方法,却不走cellForRowAtIndexPath方法。问到我,我也一愣,想了想,好像遇到过。
原因:UITableView的高度为 0 ;
如果你的TableView的高度是根据内容的高度来自适应的话,当加载的数据为空时 reloadData 方法走完会将UITableView的高度设定为0。此时如果你有新的数据刷新,再次reloadData,那么cellForRow的方法就不会被执行。因此在数据为空的时候,再次刷新之前需要将你的UITableView的高度 给一个大于0 的值。
解决:如果是xib的TableView 需要将tableViewHeight.constant = 1 (大于0即可)
如果是手写的TableView 需要重新设置frame 的高度 同上。