我想在视觉上滚动浏览整个tableView。我尝试了以下内容,但它似乎没有执行滚动。相反,它只是贯穿循环。我插入了一个dispatch_async(dispatch_get_main_queue())语句,认为这样可以确保视图在继续之前刷新,但没有运气。
我做错了什么?
func scrollThroughTable() {
for sectionNum in 0..<tableView.numberOfSections() {
for rowNum in 0..<tableView.numberOfRowsInSection(sectionNum) {
let indexPath = NSIndexPath(forRow: rowNum, inSection: sectionNum)
var cellTemp = self.tableView.cellForRowAtIndexPath(indexPath)
if cellTemp == nil {
dispatch_async(dispatch_get_main_queue()) {
self.tableView.scrollToRowAtIndexPath(indexPath!, atScrollPosition: .Top, animated: true)
self.tableView.reloadData()
}
}
}
}
}
答案 0 :(得分:0)
我找到了解决方案。只需将scrollToRowAtIndexPath()与动画一起使用即可。为此,我必须创建一个getIndexPath()函数来确定我想要滚动的位置。如果我将它传递给tableView的最后一个元素,则与滚动整个表的效果大致相同。
如果你希望它以更多的滚动效果发生,请将其包装在UIView.animateWithDuration()中并使用&#39; duration&#39;。如果你想在它的完成块中,你甚至可以做更多的动画。 (无需设置不可靠的睡眠定时器等)
{{1}}