ボタンを押すと曲を再生するプロトタイプセルを持つ動的テーブルビューがあります。
ユーザーがボタンを押して曲を再生すると、ボタンの背景画像が「停止」アイコンに変わり、ユーザーがもう一度押して停止すると「再生」アイコンに変わります。歌。
これを達成するために、私は使用しようとしてきました:
[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