【问题标题】:UIRefreshControl result in incorrect TableView offsetUIRefreshControl 导致不正确的 TableView 偏移量
【发布时间】:2016-07-06 08:07:48
【问题描述】:

performSegueWithIdentifier: 从 TableViewContorller(例如 aTVC)到另一个(例如 bTVC)时,如果我在显示 UIRefreshControl 时点击 bTVC 上的后退按钮,将导致不正确的偏移量TableViewaTVC:

黑色部分是由于在点击返回按钮时显示bTVCUIRefreshControl 时导航栏的高度不同:

我在从bTVC切换之前尝试取消refreshControl,但没有成功。

有什么想法吗?

【问题讨论】:

  • 尝试停止viewDidDisappearviewWillDisappear上的刷新控制动画?
  • -endRefreshing 都试过了。还是一样。
  • 显示你在哪里启动UIRefreshControl的代码,你是如何将它添加到UITableView的,你是如何尝试endRefreshing的。
  • 几个月前我已经完全删除了这个功能,因为我在雷达上看到它没有正确的解决方案,只要你这样做不阻止其他用户交互。问题是当您结束刷新并且用户决定在没有 RC 的 VC 之间导航时,它会中断。由于阻止 UI 交互违反了 Apple 的准则,因此在这种情况下最好不要使用它。

标签: ios uitableview uinavigationbar uirefreshcontrol


【解决方案1】:

尝试在ViewDidLoad(或您想要的位置)中添加UIRefreshControl,并在viewWillDisappear 中删除(refreshControl.removeFromSuperview())而不是endRefreshing

【讨论】:

  • 从超级视图中移除它与结束刷新不同,因为前者只会让它在没有适当动画的情况下消失,并且可能会破坏 RC 代码结构(线程等)中的东西。这与您何时执行无关,因为 VC 导航系统与您的 RC 动画异步执行转换,以不正确的顶部位置渲染 VC 的内容视图。
猜你喜欢
  • 2013-06-22
  • 1970-01-01
  • 2016-03-11
  • 2013-10-14
  • 2018-04-20
  • 2015-05-19
  • 2017-12-26
  • 2013-10-07
相关资源
最近更新 更多