我刚开始使用Swift for iOS编程,我想创建一个带有表格视图和搜索栏的应用程序。当您单击一个单元格时,将播放声音。但是当我搜索时,我不能简单地使用indexPath.row
,因为会播放另一首歌。
是否可以为每个UITableViewCell
提供一个标识符,以便我可以通过分接的单元格的标识符来调用声音?
答案 0 :(得分:2)
搜索时,理想情况下应该有另一个存储搜索结果的数组。
假设你有10个牢房。
你将有一个基于indexPath.row
播放的10个声音的数组您还将使用另一个searchResultsArray来显示搜索结果。
因此,每当调用didSelectRow时,使用新数组,并播放该数组中的声音。
答案 1 :(得分:1)
更好的方法是更改tableView的dataSource
并在显示搜索结果时调用reloadData
。
然后,您可以随时根据tableView: didSelectRowAtIndexPath:
知道在indexPath.row
中播放哪首歌曲(因为tableView的dataSource
是最新的。)
此外,由于细胞的重复使用策略,您最好不要使用cell.tag
。
答案 2 :(得分:0)
我认为您需要了解 UITableView 中的indexPath.row
和 UISearchBar 之前的工作方式。通常,indexPath.row
用作标识符。只要你走得更远,你会发现它非常有用。
我认为你有误解,因为当你点击它时,你应该能够播放声音。这就是我们在设置 UITableView 时需要数据源的原因。这就是我们所说的并行数据结构。这意味着UITableViewCell的索引与数据源中的索引匹配。
搜索后,您将拥有另一个数据源。所以,请小心。因为您不再操纵原始数据源。