0

UITableViewいくつかの曲のリストを表示しています。それぞれCellには、各セルの曲を再生するためのボタンが含まれています。最初のセルの再生ボタンをクリックすると、関連するセルの曲が再生されます。別のセルの再生ボタンをクリックすると、現在再生中の曲を停止し、新しいセルの曲の再生を開始する必要があります。

私の問題は、クリックされたボタンの背景画像をそのtag値を使用して変更する方法です。

私はこのようにしました

-(IBAction)PlayButtonClickinSearch:(id)sender
{
        audioPlayer=[Singleton sharedManager];
       UIButton *btn=(UIButton *)sender;
       if ([strWicharray isEqualToString:@"copyListOfItems"]) {
        strWhichSong=[copyListOfItems objectAtIndex:btn.tag];
}

else if ([strWicharray isEqualToString:@"arrSongList"])
{
        strWhichSong=[arrSongList objectAtIndex:btn.tag];
}

strSongPlayingStatus=[audioPlayer searchPlay:strWhichSong :btn.tag];

if ([strSongPlayingStatus isEqualToString:@"playing"]) 
{
        [btn setBackgroundImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];

}   

else if ([strSongPlayingStatus isEqualToString:@"stop"])
{
        [btn setBackgroundImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
}  
}

このコードによると、別のセルの別のボタンをクリックすると、以前にクリックした btn 画像をリセットできません。正確な値を指定tagせずに、この特定の値を持つボタンの背景を変更する方法はありますか?tag

このような

-(void)play :(int)tag
{  

    [btn(tag) setbackgroundImage :backImage];
}

助けてください。ありがとう。

4

1 に答える 1

0

このように試してみてください。ここで変数を1つ取り、以前に選択したボタンタグをその変数に割り当ててから、その値を使用して背景を変更できます。以下のコードindexはint型の変数です。

UIButton *button = (UIButton *)[self.view viewWithTag:index];
    button.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"your image name"]];

お役に立てば幸いです。

于 2013-03-18T10:05:47.207 に答える