UITableView分组页脚在重新加载后未更新
我在我的分组UITableView中有3或2个部分(取决于数据源)。 我想通过以下方式重新加载最后一部分:
dispatch_async(dispatch_get_main_queue(), ^{ [UIView performWithoutAnimation:^{ [feedDetailTB reloadSections:[NSIndexSet indexSetWithIndex:feedDetailTB.numberOfSections-1] withRowAnimation:UITableViewRowAnimationNone]; }]; });
首先,页脚永远不会消失。 数据源基本上跟踪是否有更多注释(简单加载更多function)。 在viewForFooterInSection
我只是在加载了所有注释后return nil
。
但是,正如您在GIF中看到的那样,首先loading
按钮停留在那里。 它甚至可以访问和工作。 当我向上滚动时,它会消失,人们可以在底部看到它,这是正确的。 但是在重新加载所有评论后,它应该消失,但遗憾的是它仍然存在。
如果我使用reloadData
它工作正常。 但我不能使用它,因为我有其他部分,我不需要重新加载。
其次,即使我使用了UITableViewRowAnimationNone
,行项也会出现奇怪的动画/闪烁。 在GIF中不可见
你应该根据你的逻辑实现“isTheLastSection”
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { if (isTheLastSection) { return 40; } return 0; }
要向节添加新行,必须使用insertRowsAtIndexPaths
而不是仅将新对象添加到数据源并重新加载节。
这是代码:
NSMutableArray *newCommentsIndexPath = [[NSMutableArray alloc] init]; for (NSInteger i = currentCount; i < (_postDetailDatasource.commentsFeedInfo.allCommentsArray.count + serverComments.count); i ++) { NSIndexPath *idxPath = [NSIndexPath indexPathForRow:i inSection:sectionNumber]; [newCommentsIndexPath addObject:idxPath]; } [_postDetailDatasource.commentsFeedInfo.allCommentsArray addObjectsFromArray:serverComments]; [feedDetailTB beginUpdates]; [feedDetailTB insertRowsAtIndexPaths:newCommentsIndexPath withRowAnimation:UITableViewRowAnimationFade]; [feedDetailTB endUpdates];
- 如何在xcode 5中创buildEntitlement.plist文件?
- 在预处理器#if #else的两个条件下突出显示XCode语法
- IOS中的Facebooklogin在模拟器上工作,但不能在安装了本地应用程序的设备上工作
- embedded在UIPageViewController(ScrollStyle)中的UITableView不能被挖掘 – didSelectRowAtIndexPath没有被触发
- 无法以编程方式更改UITextView框架大小
- 我是否应该在一个对象中使用@property(nonatomic,copy)或@property(nonatomic,strong)作为我的(NSString *)attr?
- XCode 5.x + Maverick在文件操作上崩溃
- 探索容器视图
- 滚动后UITableViewCell重复