我在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
来保持歌词单元格在中心。
答案 0 :(得分:0)
更改此行以将animated
设置为true
:
vc_lyrics.sharedInstance().tableView.scrollToRow(at: lcCell, at: .none , animated: true)
这将使细胞顺利滚动。我还会考虑您是否需要在此处重新加载tableView
数据,因为这也会导致滚动问题为@rmaddy mentioned。