在一次项目中碰到了一个很奇怪的问题,界面是一个tableview,刚进入界面时 tableview的indexPath计算是从4开始算的,导致刷新后与刚进入界面的起始数据不一致,于是在网上查阅相关的资料后,发现有部分人有过类似的经历,但是都没有给出解决问题,不过我发现基本上都是因为做cell的动态高导致的,也就是这个方法:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return self.cellHeight;
}
将返回值改为固定值后是没有问题,但是返回的是动态数值则会出现上述问题:
所以将改变cell高度的代码改变了,通过以下方法解决:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
在这个方法中通过tableView.rowHeight = self.cellHeight方法为cell设置高度,就会避免上述问题。
网友评论