我目前在UITableView
中使用自动滚动到底部,但有一个错误需要解决:
如果我在执行滚动之前按下UITableView
的任何位置,那就停止工作了。 (在显示视图之前我无法滚动到底部,因为我检索异步数据)
所以我认为首先要禁用userInteraction
,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
self.view.userInteractionEnabled = false
...
}
并在此解锁:
func tableViewScrollToBottom(animated: Bool) {
let delay = 0.1 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue(), {
let numberOfSections = self.tableView.numberOfSections
let numberOfRows = self.tableView.numberOfRowsInSection(numberOfSections-1)
if numberOfRows > 0 {
let indexPath = NSIndexPath(forRow: numberOfRows-1, inSection: (numberOfSections-1))
self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.None, animated: animated)
}
self.view.userInteractionEnabled = true
})
}
但是(它真的很奇怪)不起作用,是的,视图被禁用(我甚至试图锁定UITableView)我无法滚动UITableView但似乎它无论如何都可以检索触摸。