【发布时间】:2018-12-07 07:01:54
【问题描述】:
我有一个带有内置UIRefreshControl 的UITableViewController。我要修复的刷新动画有两个问题。
当我拖放表格视图时,它开始从我们的服务器更新数据。如果用户一直拖动它,则会发生明显的偏移跳跃。
当刷新操作结束时,表格视图会隐藏动画的刷新控件。完成隐藏后,控件会闪烁几帧。
控件是从 UIStoryboard 设置的。我从那里设置目标和着色颜色。当动作触发时,我的代码会刷新来自我们服务器的数据,当服务器响应时它会回调。我从那里停止刷新控制:
dispatch_async(dispatch_get_main_queue(), ^{
[self.refreshControl endRefreshing];
});
...
[self.tableView reloadData];
是我做错了什么还是 UIRefreshControl 在 iOS 11 中存在问题?
【问题讨论】:
-
在 dispatch_async 方法中重新加载 tableView
-
这让事情变得更糟。 UIRefreshControl 完全跳过动画,如果我使用这种方式,则会为表格视图设置错误的偏移量。
-
您可以尝试将
self.extendedLayoutIncludesOpaqueBars = YES添加到您的控制器吗?UIRefreshControl有很多这样的问题…… -
我在处理
UIRefreshControl和异步网络请求时从未遇到过这种行为。所以我猜你的代码中有些地方存在错误。 -
当我在
-reloadData之后移动-endRefreshing调用时,闪烁问题消失了。拖动时的跳跃似乎是由重新加载引起的。我还能如何重新加载?
标签: objective-c uirefreshcontrol