iPhone - кнопка в UITableViewCell не меняет изображение - PullRequest
0 голосов
/ 17 ноября 2011

Я пытаюсь создать ячейку с использованием раскадровки Xcode 4.2 и с помощью Interface Builder для создания настраиваемой ячейки.Я получил ячейку, созданную нормально, и у меня есть кнопка внутри нее, я пытаюсь получить ее, когда нажимаю кнопку, изображение меняется, однако, похоже, оно не работает.Это то, что у меня есть

- (IBAction)sendToFavorites:(id)sender {
    UITableViewCell *cell = (UITableViewCell *)[[sender superview] superview];
    int row = [feedTableView indexPathForCell:cell].row;
    NSLog(@"\"%@\" is FAVORITED", [[_allEntries objectAtIndex:row] articleTitle]);
    if ([[_allEntries objectAtIndex:row] isFavorited]) {
        NSLog(@"Unfavorite");
        [[_allEntries objectAtIndex:row] setFavorite:NO];
        [[sender imageView] setImage:[UIImage imageNamed:@"StarEmpty"]];
    } else {
        NSLog(@"Favorite");
        [[_allEntries objectAtIndex:row] setFavorite:YES];
        [[sender imageView] setImage:[UIImage imageNamed:@"StarFilled"]];
    }
}

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 18 ноября 2011

Разобрался.

    [sender setImage:[UIImage imageNamed:@"StarEmpty"] forState:UIControlStateNormal];

Невозможно установить его отдельно, нужно установить его с состоянием, выделено ли оно, Обычное и т. Д.

0 голосов
/ 17 ноября 2011

Вы можете попробовать обновить содержимое табличного представления.То есть, вызывая reloadData в вашем табличном представлении после установки нового изображения, связанного с ячейкой.

Насколько я понимаю из вашего кода, вы пытаетесь изменить содержимое ячейки напрямую.Вместо этого это должно происходить с помощью механизма dequeueReusableCellWithIdentifier, который контролирует перерисовку таблицы.Итак, просто: измените ваш источник данных и перерисовайте таблицу.

Надеюсь, это поможет.

...