Изменить UITableView accessoryView на выбор строки - PullRequest
9 голосов
/ 10 марта 2011

Я пытаюсь изменить вспомогательное представление UITableViewCell, когда его строка выбрана, у меня есть следующий код:

- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell* cell = [self tableView:aTableView cellForRowAtIndexPath:indexPath];
    UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    [activityView startAnimating];
    cell.accessoryView = activityView;
    [activityView release];
}

Но это не работает. Есть идеи?

Ответы [ 2 ]

8 голосов
/ 10 марта 2011

Вы не должны запрашивать источник данных tableview (себя) для ячейки. потому что это создаст новую ячейку, которая просто не отображается.

заменить

UITableViewCell* cell = [self tableView:aTableView cellForRowAtIndexPath:indexPath];

с

UITableViewCell *cell = [aTableView cellForRowAtIndexPath:indexPath];
5 голосов
/ 20 октября 2011
    UIImage *normalImage = [UIImage imageNamed:@"cell-accessory.png"];
    UIImage *selectedImage = [UIImage imageNamed:@"cell-accessory-selected.png"];

    UIButton *accessoryView = [UIButton buttonWithType:UIButtonTypeCustom];
    accessoryView.frame = CGRectMake(0.0f, 0.0f, normalImage.size.width, normalImage.size.height);
    accessoryView.userInteractionEnabled = NO;
    [accessoryView setImage:normalImage forState:UIControlStateNormal];
    [accessoryView setImage:selectedImage forState:UIControlStateHighlighted];
    cell.accessoryView = accessoryView;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...