我想自动滚动到UITableViewCell。我知道如何通过行号来执行此操作,例如
var indexPath = NSIndexPath(forRow: numberOfRowYouWant, inSection: 0)
self.tableview.scrollToRowAtIndexPath(indexPath,
atScrollPosition: UITableViewScrollPosition.Middle, animated: true)但是,我想滚动到等于字符串的单元格。我有一个结构体
struct Song {
var title: String
var artist: String
}
var songs: [Song] = [
Song(title: "Title 1", artist "Artist 1"),
Song(title: "Title 2", artist "Artist 2"),
Song(title: "Title 3", artist "Artist 3"),
]UITableViewCell的标题等于title,subtitle等于艺术家。每当用户点击UIButton时,我希望它滚动到Song(title: "Title 3", artist "Artist 3")所在的单元格。我该怎么做呢?
发布于 2017-07-04 04:59:57
当他们按下按钮时,只需循环您的歌曲数组,并检查具有给定标题和您正在查找的艺术家的歌曲。找到歌曲后,滚动到其索引路径与找到该歌曲的数组中的索引对齐的单元格。
发布于 2017-07-04 05:02:57
向Song类添加一个属性,如下所示:
struct Song {
var title: String
var artist: String
var idOrder: Int
}然后,您必须按idOrder对列表中的歌曲进行排序。idOrder也是您的行号,因此您可以使用您的代码:
var indexPath = NSIndexPath(forRow: numberOfRowYouWant, inSection: 0)
self.tableview.scrollToRowAtIndexPath(song.idOrder,
atScrollPosition: UITableViewScrollPosition.Middle, animated: true)https://stackoverflow.com/questions/44893594
复制相似问题