UITableViewController - 在refreshControl.endRefreshing()

时间:2016-09-21 18:03:07

标签: uitableview swift2 uirefreshcontrol

我有一个UITableViewController。 我在属性检查器中启用了“刷新”属性。 在viewDidLoad中,我已经分配了一个选择器(即拉动刷新动作)。 在pull to refresh操作中,作为最后一步,我调用refreshControl.endRefreshing()

刷新操作后,表格返回到使用iOS<的任何设备上的原始位置。 V10。在iOS 10之前,它没有问题。

仍在使用Swift 2.2。

其他信息: 如果需要数据下载,则Pull to Refresh会触发检查。如果没有,它会发出警报,只有“OK”操作才能解除警报。警报使用以下方式管理:

self.presentViewController(alert, animated: true, completion: nil)

可能是因为在触发警报之前表格没有返回原来的位置,它会卡在最后知道的位置吗?

如果是这样,是否可以确保桌子回到原来的位置而不必在警报出现之前拨打refreshControl.endRefreshing()

思想?

1 个答案:

答案 0 :(得分:1)

基于this回答(虽然我使用的是UITableViewController而不是ViewController +表​​),但我已经完成了以下操作:

  1. viewDidLoad中将tableView.contentOffset存储为initialContentOffset(请注意,这是一个CGPoint变量)
  2. 拉到刷新后
  3. ,设置tableView.contentOffset = initialContentOffset
  4. 其他问题:

    1. 表的初始内容偏移量似乎是(0,0)。就像我一样 有一个导航栏,我计算了y偏移量(出现在 66)。然后我创建我的initialContentOffset作为CGPoint(0,-66)
    2. 在我的情况下,这个问题似乎只影响ios 10上的iPhone 6sp。不知道为什么......