任何想法为什么?
[self.messagetableVIEw beginUpdates];[self.messagetableVIEw reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:count inSection:0]] withRowAnimation:UItableVIEwRowAnimationNone];[self.messagetableVIEw endUpdates];
谢谢
解决方法 endUpdates触发内容大小重新计算,这需要heightForRowAtIndexPath.这就是它的工作原理如果这是一个问题,您可以将单元格配置逻辑拉到cellForRowAtIndexPath之外,并直接重新配置单元格,而无需通过reloadRowsAtIndexPaths.这是一个基本的概述:
- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath{ Nsstring *cellID = ...; UItableVIEwCell *cell = [tableVIEw dequeueReusableCellWithIDentifIEr:cellID]; if (!cell) { cell = [[UItableVIEwCell alloc] initWithStyle:UItableVIEwCellStyleDefault reuseIDentifIEr:cellID]; } [self tableVIEw:tableVIEw configureCell:cell atIndexPath:indexPath]; return cell;}- (voID)tableVIEw:(UItableVIEw *)tableVIEw configureCell:(UItableVIEwCell *)cell atIndexPath:(NSIndexPath *)indexPath{ //cell configuration logic here}
然后,无论您当前正在调用reloadRowsAtIndexPaths,您都可以这样做,而不会调用heightForRowAtIndexPath:
UItableVIEwCell *cell = [self.messagetableVIEw cellForRowAtIndexPath:indexPath];[self tableVIEw:self.messagetableVIEw configureCell:cell atIndexPath:indexPath];总结
以上是内存溢出为你收集整理的iOS UITableView reloadRowsAtIndexPaths全部内容,希望文章能够帮你解决iOS UITableView reloadRowsAtIndexPaths所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)