【发布时间】:2016-04-19 18:59:49
【问题描述】:
我的应用中有一个下拉刷新功能,据我所知,这是设置“正常方式”:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refreshControl addTarget:self action:@selector(refreshPage) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
令人耳目一新的部分工作正常。完成刷新后,我打电话给
[self.refreshControl endRefreshing]
此时,它似乎忽略了该调用并继续显示下拉刷新“间隙”,只是没有微调器:
(我在该行确实有一个断点来验证 endRefreshing IS 实际被调用)
如果我用拇指摇动页面(将其轻轻拉下,但不要拉得足够远以触发另一次拉动刷新),它会自行修复并弹回原位。但是为什么当我打电话给[self.refreshControl endRefreshing] 时它没有回弹?有没有办法以编程方式强制它弹回?
我也尝试过延迟 endRefreshing 调用:
[self.refreshControl performSelector:@selector(endRefreshing) withObject:nil afterDelay:0.0]
但它仍然忽略调用。
【问题讨论】:
-
如果您使用的是 IB,您是否将 UITableView 'Refreshing' 属性设置为 Enabled?
-
@fbara - 我正在使用情节提要。我没有通过 xcode UI 或代码看到“刷新”属性...
-
点击 UITableViewController。在 Attributes Inspector 中有一个名为“Refreshing”的设置,并在下拉菜单中选择“Enabled”。
标签: ios objective-c uirefreshcontrol