我在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
)将歌词单元格保持在中央。 最佳答案
更改此行以将animated
设置为true
:
vc_lyrics.sharedInstance().tableView.scrollToRow(at: lcCell, at: .none , animated: true)
这将导致单元格平滑滚动。我还要考虑是否需要在此处重新加载
tableView
数据,因为这也会导致滚动问题,例如@rmaddy mentioned。