在 segue 之后向上滚动时 UITableView 滞后

UITableView lag when scrolled up after segue

在使用 segue 之后,我发现我的 UITableView 在执行 segue 后由于未知原因滞后。请看视频: https://www.youtube.com/watch?v=mPAVcvf9UcE 源代码:http://pastebin.com/c62UZiNx

按照这个问题的解决方案,我遇到了这个问题: How can I get the UITableView scroll position so I can save it?

我设法解决此问题的唯一方法是创建一个 CGPoint(如 CGPointMake(0,20) ),而不是在发生 segue 时记住它。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "showDetailedPost" {
         if let vc = segue.destinationViewController as? DetailedPostVC {
             offset = tableView.contentOffset
             vc.num = tableView.indexPathForSelectedRow()!.row
         }
    }
}

这似乎没有解决问题:

override func viewWillDisappear(animated: Bool) {
    offset = tableView.contentOffset
}

override func viewWillAppear(animated: Bool) {
    tableView.contentOffset = offset
}

所讨论的行为自 iOS 8.4 以来已修复,因此该问题仅与之前的 iOS 版本相关。