在 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 版本相关。
在使用 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 版本相关。