UITableView跳转到scrollToRow?

时间:2017-08-31 13:42:01

标签: ios swift uitableview

我在Swift中面临UITableView的问题。表包含歌词。每个细胞都是抒情类。我知道我必须关注哪个索引,所以我将当前的歌词显示为红色,其余的则显示为黑色。

到目前为止一切都还好。但是在使用scrollToRow时,它会在表开始之前向下滚动到视图外的歌词。一旦UITableView开始在视图外滚动,它就会开始跳跃。

知道如何让它平滑地滚动到当前单元格而不跳跃吗?

以下是我如何使表格转到所需的歌词:

let lcCell = IndexPath(row: (vc_lyrics.sharedInstance().lyric_time[seconds]?.index)!, section: 0)

DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
    vc_lyrics.sharedInstance().tableView.scrollToRow(at: lcCell, at: .none , animated: false)
    vc_lyrics.sharedInstance().tableView!.reloadData()
}

或者,如果我可以通过滚动表格的滚动视图而不是其委托scrollToRow来保持歌词单元格在中心。

1 个答案:

答案 0 :(得分:0)

更改此行以将animated设置为true

vc_lyrics.sharedInstance().tableView.scrollToRow(at: lcCell, at: .none , animated: true)

这将使细胞顺利滚动。我还会考虑您是否需要在此处重新加载tableView数据,因为这也会导致滚动问题为@rmaddy mentioned