【发布时间】:2015-07-30 16:45:53
【问题描述】:
我在UIViewController 的viewDidLoad: 方法中定义了UITableView 和UIRefreshControl,如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(refreshMessages) forControlEvents:UIControlEventValueChanged];
UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = self.messagesTableView;
tableViewController.refreshControl = self.refreshControl;
}
- (void)refreshMessages {
//load data items
if ([self.refreshControl isRefreshing]) {
[self.refreshControl endRefreshing];
}
[self.messagesTableView reloadData];
}
我使用自定尺寸单元格来更新单元格数据。重新加载数据时,UITableView 闪烁。有没有办法避免这种情况?
编辑
我已链接video 文件以获取示例演示。重新加载数据时的UITableView 闪烁。我使用自动布局来更新动态单元格高度。
这是一个sample 代码,可以重现此问题。 UITableView 应该被拉刷新。表视图重新加载到主队列中。正在使用自动布局调整单元格的大小。
【问题讨论】:
-
那么你有'UIViewController'还是'UITableViewController'?你在哪里展示你在 viewDidLoad 中初始化的“tableViewController”对象?您应该提供更多信息,这会有所帮助
-
只是在黑暗中拍摄,但您尝试过 [tableView beginUpdates/endUpdates] 吗?
标签: ios objective-c uitableview uiviewcontroller uirefreshcontrol