如何在不知道iOS中的确切标记值的情况下访问按钮?

时间:2013-03-18 09:58:30

标签: uitableview ios6 uibutton

我有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];
}

Plz帮助我。 感谢。

1 个答案:

答案 0 :(得分:0)

尝试这样,这里取一个变量并将之前选择的按钮标签分配给该变量,然后使用该值可以更改background.in下面的代码index是一个int类型的变量。

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

我希望它可以帮助你。