【发布时间】:2012-06-15 18:05:51
【问题描述】:
我正在构建一个带有类似 iPod 的控件(播放、暂停等)的应用程序。该应用程序在每个单元格中都有带有轨道名称的 tableView。我有一个 MainViewController 和一个 UITableView 和一个自定义 UITableViewCell 类。播放器控件存在于MainViewController。
每个单元格中还有一个播放/暂停按钮。我已成功设置NSNotifications 以在单元格中按下播放按钮时发布通知,因此将轨道信息发送到MainViewController 中的观察者和响应者方法以及播放器控件(由MPMoviePlayerController 驱动)已启动。
这可行,但是一旦播放曲目,我就无法弄清楚如何使单元格中的播放/暂停按钮“镜像”我 iPod 控件中播放/暂停按钮的状态。我不认为在每个单元格中添加NSNotification observer 是正确的做法。
附加信息:MainViewController 播放器中的播放/暂停按钮图像由每半秒触发一次并检查MPMoviePlayerController 的playbackstate 的方法确定。如果播放,播放器按钮设置为播放图像。如果暂停,则设置为暂停图像。我在想设置 tableCell 播放/暂停按钮的实现也会放在这里。
Edit 只要播放状态发生变化(通过 NSNotification),就会在我的 UITableViewController 中调用此方法。 (playButton 是播放器控件中的播放/暂停按钮,而不是我试图根据播放状态更新的表格单元格中的播放/暂停)。
- (void) updateViewForPlayerState
{
// Change playButton image depending on playback state
[playButton setImage:((moviePlayer.playbackState == MPMoviePlaybackStatePlaying) ? pauseBtnBG : playBtnBG) forState:UIControlStateNormal];
}
【问题讨论】:
标签: iphone objective-c ios uitableview