我很难理解UITableView
. 我正在从MPMediaItemCollection
歌曲队列中填充我的表。我想要实现的是在与当前播放的歌曲匹配的索引路径上拥有一个正在播放的指示器作为单元格的附件视图。
我最初尝试使用以下方法:
if (indexPath.row == [mutArray indexOfObject:[mainViewController.musicPlayer.nowPlayingItem valueForProperty:MPMediaItemPropertyTitle]]) {
UIImageView *playButtonView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"PlayButton.png"]];
[cell setAccessoryView:playButtonView];
}
这适用于正在播放的项目,它实际上总是objectAtIndex:0
. 但我不明白为什么我的表格似乎在每个组合可见单元格的高度定义一次这个索引。
让我试着更清楚地解释这一点。假设我的桌子高 600 像素,其内容高度为 1800 像素。这会导致在内容高度下大约每 600 像素添加一次指示器。
现在我的第一个想法是,根据歌曲名称判断索引的代码有问题,所以我尝试将其更改为:
if (indexPath.row == 0)
但这会产生相同的结果!
这个屏幕截图应该有助于解释我在说什么。
那么,我可以做些什么来使表格indexPath0
仅视为参考整个表格的第一个单元格,而不是参考当前可见的单元格?