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

像这样尝试,这里取一个变量并将先前选择的按钮标签分配给该变量,然后通过使用该值您可以更改背景。在下面的代码index中是一个 int 类型变量。

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

我希望它会帮助你。

于 2013-03-18T10:05:47.207 回答