【发布时间】:2013-10-17 20:03:17
【问题描述】:
我已经在作为主视图的子视图的表视图中实现了拉动刷新,如下所示:
UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = self.tableView;
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
tableViewController.refreshControl = self.refreshControl;
这会更新表格并且一切正常,我遇到的问题是当我触摸表格以拖动单元格时似乎随机向上移动到屏幕上方。当我从屏幕中间触摸并向下拖动时,或者如果我在单元格移回正常位置之前拉动,就会发生这种情况。这里有一些屏幕截图可以更好地绘制图片。请记住,所有这些都是在我向下拖动后拍摄的,但单元格向上移动。
应该是这样的:
细胞跳跃后实际上是这样的:
【问题讨论】:
-
请发布一些关于如何实际刷新单元格的代码。这行的重点是什么:`tableViewController.refreshControl = self.refreshControl;'
-
我能感受到你的痛苦。我很确定它与 UITableViewController 有关,但我还没有让刷新控件在普通的 UIViewController 中正常工作(contentInsets 搞砸了)。你有这方面的最新消息吗?
-
@manmal 我确实通过在后台执行一些更新逻辑来使其正常工作。我也改用 UITableViewController 而不是嵌入的 UITableView。我将发布一个关于我的代码结构现在看起来如何解决问题的答案。
标签: objective-c uitableview pull-to-refresh uirefreshcontrol