gpt4 book ai didi

objective-c - UIRefreshControl跳转和闪退问题

转载 作者:太空狗 更新时间:2023-10-30 03:50:25 33 4
gpt4 key购买 nike

我有一个带有内置 UIRefreshControlUITableViewController。我想修复刷新动画的两个问题。

  1. 当我拖拉表格 View 时,它开始从我们的服务器更新数据。如果用户一直拖动它,就会发生明显的偏移跳跃。

  2. 当刷新操作结束时, TableView 隐藏动画的刷新控件。隐藏完成后,控件会闪烁几帧。

Showcase

控件是从 UIStoryboard 设置的。我从那里设置目标和色调颜色。当 Action 触发时,我的代码刷新来 self 们服务器的数据,当服务器响应时它有一个回调。我从那里停止刷新控制:

dispatch_async(dispatch_get_main_queue(), ^{
[self.refreshControl endRefreshing];
});
...
[self.tableView reloadData];

是我做错了什么,还是 UIRefreshControl 只是 iOS 11 中的错误?

最佳答案

我遇到了类似的问题,这就是我最终解决它的方法:

  1. 需要设置“估计行高”属性。否则,reloadData() 会导致明显的跳跃。这是解释here

  2. 在用户仍在拖动时调用 endRefreshing() 也会导致明显的跳跃。为避免这种情况:

    • 当我从服务器接收到新数据时,我检查用户是否仍在拖动 (UIScrollView.isDragging)。如果是这种情况,那么我不会立即调用 endRefreshing(),而是设置一个标志。
    • 我覆盖 scrollViewDidEndDragging 并检查那里的标志;如果已设置,则调用 endRefreshing() 并清除标志。

关于objective-c - UIRefreshControl跳转和闪退问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51078766/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com