我有一個動態桌面視圖,其中有一個按鈕,當按下時播放歌曲的原型單元格。更改在UITableview中按下的特定按鈕的圖像
我想要按鈕上的背景圖像,當用戶按下按鈕播放歌曲時變爲「停止」圖標,並且當用戶按下它時變爲「播放」圖標再一次阻止這首歌。
要做到這一點,我一直在試圖使用方法: [self.beatPlayButton setBackgroundImage:[UIImageimageNamed:@"play.png"]forState:UIControlStateNormal];
我的問題是,我還沒有想出如何,因爲我使用的原型,被按下的行中僅更改按鈕細胞。我一直希望找到像didSelectObjectAtRow:atIndexPath:
這樣的方法,因爲didSelectRowAtIndexPath:
會在按下該行時觸發,但不會觸發按鈕(除非我錯了)。也許我應該使用標籤?我不確定。任何指針將不勝感激。我的代碼不在didSelectRowAtIndexPath
之內。
下面是示例代碼 -
- (IBAction)playStopBeat:(UIButton*)sender event:(id)event {
NSSet *touches = [event allTouches];
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint: currentTouchPosition];
if([self.audioPlayer isPlaying])
{
[self.beatPlayButton setBackgroundImage:[UIImage imageNamed:@"play.png"]forState:UIControlStateNormal];
[self.audioPlayer stop];
self.isPlaying = NO;
self.audioPlayer = nil;
}
else {
if (indexPath.row == 0) {
[self.beatPlayButton setImage:[UIImage imageNamed:@"stop.png"] forState: UIControlStateNormal];
}
else if (indexPath.row == 1){
[self.beatPlayButton setBackgroundImage:[UIImage imageNamed:@"stop.png"]forState:UIControlStateNormal];
}
else if (indexPath.row == 2){
...
//code to play song
是在'didSelectRowAtIndexPath'中發生的操作還是在按鈕發送的某些操作中? –
你能提供一些代碼嗎?什麼動作與按鈕相關聯? – sergio
我已更新我的問題以提供更多上下文。謝謝。 –