Как сбросить тип аксессуара для ячеек таблицы одним нажатием кнопки?

Я пытаюсь закодировать кнопку сброса, чтобы, когда я нажимаю на эту кнопку, все типы аксессуаров ячеек таблицы устанавливались на none.

У меня есть четкое представление о том, как это сделать, но я новичок в разработке для iPhone, поэтому мне просто нужна помощь с тем, какие методы вызывать.

Шаги, которые, как мне кажется, мне нужно предпринять: я перебираю все строки, используя цикл for, поэтому я подсчитываю количество ячеек (успешно выполнено). Моя проблема в том, что я понятия не имею, как проверить каждую из этих строк/ячеек, если тип аксессуара - CheckMark, и установить для него значение none.

В качестве альтернативы я могу установить для всех своих ячеек значение AccessoryNone, но я уже делаю некоторые вычисления внутри:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

Поэтому я не уверен, как я могу этого добиться.


person subodhbahl    schedule 06.11.2011    source источник


Ответы (2)


Не нужно сначала проверять, какой accessoryType, просто назначьте UITableViewCellAccessoryNone всем им. Это должно работать для того, что вы пытаетесь сделать:

// replace clickedResetButton with your action handler method for that button
- (IBAction)clickedResetButton:(id)sender {
    for (int section = 0, sectionCount = self.tableView.numberOfSections; section < sectionCount; ++section) {
        for (int row = 0, rowCount = [self.tableView numberOfRowsInSection:section]; row < rowCount; ++row) {
            UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:section]];
            cell.accessoryType = UITableViewCellAccessoryNone;
            cell.accessoryView = nill;
        }
    }
}
person chown    schedule 20.11.2011

Свифт 3.1

func resetAccessoryType(){
    for section in 0..<self.tableView.numberOfSections{
        for row in 0..<self.tableView.numberOfRows(inSection: section){
            let cell = self.tableView.cellForRow(at: IndexPath(row: row, section: section))
            cell?.accessoryType = .none
        }
    }
}
person Stefan Grandjean-Thomsen    schedule 08.08.2017