изменить состояние кнопки в cellForRowAtIndexPath - PullRequest
0 голосов
/ 23 декабря 2009

это сводит меня с ума сейчас .. У меня есть UItableview. Основанный на NSMutableArray, я заполняю это. Я установил в reuseTableViewCellWithIdentifier со следующим

cellRectangle = CGRectMake((ARROW_OFFSET + 5), (ROW_HEIGHT - LABEL_HEIGHT) / 2.0, ARROW_WIDTH, LABEL_HEIGHT);
UIButton *tmpButton = [[UIButton alloc] initWithFrame:cellRectangle];
[tmpButton initWithFrame:cellRectangle];
[tmpButton setImage:[UIImage imageNamed:@"icon_edit.png"] forState:UIControlStateNormal];
[tmpButton setImage:[UIImage imageNamed:@"icon_no.png"] forState:UIControlStateDisabled];
[tmpButton addTarget:self action:@selector(editSelectedRow:) forControlEvents:UIControlEventTouchUpInside];  
tmpButton.tag = ARROW_TAG;
[cell.contentView addSubview: tmpButton];
[tmpButton release];

тогда в cellForRowAtIndexPath у меня есть следующие строки кода

UIButton *button = (UIButton *)[cell viewWithTag:ARROW_TAG];
[button setTag:indexPath.row];

if (counterHasStarted == 1) {
    NSLog(@"yes");
    button.enabled = NO;
} else {
    button.enabled = YES;
}

кнопка показывает хорошо, но по какой-то причине, когда переменная counterHasStarted (которая является int, установлена, она не меняется! Я могу изменить UILabels на основе приведенного выше кода (проверяя, является ли counterHasChanged 1 или 0).

Есть идеи, что происходит ??

1 Ответ

2 голосов
/ 23 декабря 2009

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

Полагаю, вы меняете counterHasStarted и ожидаете, что состояние включенной кнопки изменится? Вы можете перезагрузить данные при изменении counterHasStarted ([yourTableView reloadData]). Тогда табличное представление вызовет -cellForRowAtIndexPath: для всех ячеек, которые в данный момент видны, и вы можете включать или отключать кнопки по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...