Как изменить конкретный элемент в строке без перезагрузки строки в Objective-C? - PullRequest
0 голосов
/ 24 ноября 2018

Я хочу обновить UiSwitch подряд в UITableView.Я хочу сделать это включенным и выключенным с помощью animation программным способом.

    NSIndexPath *indexPath = [[NSIndexPath indexPathForRow:0 inSection:lastSelectedCardSectionNumber] retain];
    newCell *cell = (newCell *)[self.myTableView dequeueReusableCellWithIdentifier:@"newCell" forIndexPath:indexPath];
    [cell.switch1 setOn:YES animated:YES];

, но приведенная выше строка не меняет состояние, и я должен перезагрузить строку, которая не приводит к изменению состояния UiSwitch с анимацией.


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

1 Ответ

0 голосов
/ 24 ноября 2018

Проблема в том, как вы извлекаете cell.Должно быть:

newCell *cell = (newCell *)[self.tableView cellForRowAtIndexPath:indexPath];

, а не это:

newCell *cell = (newCell *)[self.myTableView dequeueReusableCellWithIdentifier:@"newCell" forIndexPath:indexPath];

Первый получает уже существующий экземпляр ячейки, а последний создает новый экземпляр ячейки.

...