Изменение содержимого в TableViewCell

Рейтинг: 1Ответов: 2Опубликовано: 19.11.2014

У меня есть кнопка "PLAY" в каждой секции, после нажатия на нее проигрывается аудио, пытаюсь сделать изменение картинки в кнопке "PLAY" на секции после нажатия, но как? Как изменять содержимое в уже созданной ячейке?

В cellForRowAtIndexPath

texturl = cell.message.text;
[cell.playbutton addTarget:self action:@selector(playaudio) forControlEvents:UIControlEventTouchUpInside];

Сам void:

-(void)playaudio
{

    [***СЮДА НАДО cell.playbutton, но как****** setBackgroundImage:[UIImage imageNamed:@"stop_button.png"] forState:UIControlStateNormal];
    NSURL *urlStream = [NSURL URLWithString:texturl];
    player = [[AVPlayer alloc] initWithURL:urlStream];
    [player play];
}

Буду очень благодарен за все подсказки.

Ответы

▲ 3Принят
[cell.playbutton addTarget:self action:@selector(playaudio:) forControlEvents:UIControlEventTouchUpInside];

-(void)playaudio:(UIButton *)button 
{
    [button setBackgroundImage:[UIImage imageNamed:@"stop_button.png"] forState:UIControlStateNormal];
    NSURL *urlStream = [NSURL URLWithString:texturl];
    player = [[AVPlayer alloc] initWithURL:urlStream];
    [player play];
}

Обновление

Проверьте, чтобы место, куда вы помещаете изображение, было одним и тем же. Например:

- (void)setImage:(UIImage *)image
             forState:(UIControlState)state
▲ 1

А почему бы сразу не присвоить кнопке разные изображения для разных состояний? И в

 -(void)playaudio:(UIButton *)button 
{
    button.selected = !button.selected;
    if(button.selected)
    //проигрываем аудио
    else
    //останавливаем воспроизведение