【发布时间】:2012-08-02 08:15:58
【问题描述】:
我很难理解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 视为仅引用整个表格的第一个单元格,而不是引用当前可见的单元格?
【问题讨论】:
标签: objective-c ios cocoa-touch uitableview