iPhone - UITableViewCellAccessoryType - PullRequest
       0

iPhone - UITableViewCellAccessoryType

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

Эй, Фолкс Следующий метод вызывается при загрузке, и он делает accesoryType для всех ячеек как CheckMark.

- (UITableViewCellAccessoryType) tableView: (UITableView *) tableViewaccessoryTypeForRowWithIndexPath: (NSIndexPath *) indexPath{return UITableViewCellAccessoryCheckmark;}

Я хочу написать IBAction, который делает что-то точно такое же, но одним нажатием кнопки, а не при загрузке.Пожалуйста, помогите!

Спасибо:)

1 Ответ

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

Если вы хотите изменить вспомогательный тип ячеек при нажатии кнопки, вам придется перезагрузить соответствующие строки. Создайте переменную экземпляра в вашем классе контроллера табличного представления для хранения активного типа аксессуара и проверьте его в вашем -tableView: cellForRowAtIndexPath: метод:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell;

    // ...

    [cell setAccessoryType:[self cellAccessoryType]];
    return cell;
}

Затем установите действие кнопки «подправить изнутри» примерно так:

- (IBAction)changeAccessories:(UIButton *)sender
{
    UITableViewCellAccessoryType accessoryType;

    if (/*condition*/) {
        accessoryType = UITableViewCellAccessoryTypeCheckmark;
    } else {
        accessoryType = UITableViewCellAccessoryTypeNone;
    }

    [self setCellAccessoryType:accessoryType];
    [[self tableView] reloadData];
}

Вызов -reloadData - довольно простой способ сделать что-то. Для более плавного решения, посмотрите -reloadRowsAtIndexPaths: withRowAnimation: .

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