UITableViewCell ID

时间:2015-05-03 07:48:43

标签: ios swift uisearchbar tableviewcell

我刚开始使用Swift for iOS编程,我想创建一个带有表格视图和搜索栏的应用程序。当您单击一个单元格时,将播放声音。但是当我搜索时,我不能简单地使用indexPath.row,因为会播放另一首歌。

是否可以为每个UITableViewCell提供一个标识符,以便我可以通过分接的单元格的标识符来调用声音?

3 个答案:

答案 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的索引与数据源中的索引匹配。

搜索后,您将拥有另一个数据源。所以,请小心。因为您不再操纵原始数据源。