Didelectrowatindexpath возвращает неправильный индекс
-
29-09-2019 - |
Вопрос
Я столкнулся с действительно озадачивающейся ошибкой. То первый ряд моего UiableView возвращает 1 и то второй один возврат 0 В индексах! Как это вообще возможно?
В моей `- (void) viewdidload` Все еще хорошо. Я успешно выделяю первый ряд с
currentRow = 0;
[tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:currentRow inSection:0]
animated:NO scrollPosition:UITableViewScrollPositionNone];
У меня есть переменная currentRow
для отслеживания, какой ряд выбран (другой контроль изменяется в зависимости от того, какой из них выбран в данный момент).
Теперь в моей функции «DIDDESELECTROWATINDEXPATH» у меня есть:
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
...
NSLog(@"IndexPath: %@", [indexPath description]);
}
Журнал показывает следующее:
IndexPath: <NSIndexPath 0x79509d0> 2 indexes [0, 0]
Когда я касаюсь второй ряд иIndexPath: <NSIndexPath 0x79509d0> 2 indexes [0, 1]
Когда я касаюсь первый ряд.
Там нет строки вставки или удаления или сортировки и т. Д., Не прокручивая. Это простое UiableView, сгруппированный стиль, с 1 секцией и 3 рядами. Что может быть причиной этого?
Спасибо за вашу помощь,
С
Решение
Вы реализовали делалДепартаментselectrowatindexpath.. Отказ Он будет уволен, когда ряд больше не выбран.
Когда вы касаетесь второго ряда, первый ряд больше не выбран, Так будет показано [0, 1].
Когда вы снова прикасаетесь к первой строке, вторая строка сейчас больше не выбран, Так будет показано [0, 0].
Они полностью ожидают.
Воплощать в жизнь делалВыбиратьRowatindexpath. Если вам нужно, чтобы ответить, когда ряд выбранный.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// ^
...
NSLog(@"IndexPath: %@", [indexPath description]);
}
Другие советы
Несмотря на название, перегруженный метод на самом деле didDeselectRowAtIndexPath
, Таким образом, звучит так, как поведение правильно - когда 1-й ряд касается, 0-е место становится измененным, и наоборот.