Это не вопрос «что мне добавить в код». Это вопрос «Я не понимаю, как работают таблицы».
Сообщите вам по очереди, какой код изменить не поможет. Вместо этого вам нужно изучить и понять, как работают таблицы.
Ячейки представления таблицы создаются, а затем повторно используются снова и снова. Когда ячейка прокручивается за пределы экрана, система удаляет ячейку с экрана и помещает ее в «корзину». Когда прокручивается новая строка, система пытается вывести ячейку из корзины и использовать ее для отображения информации для вновь открытой строки, а не создания новой ячейки. Он создает только совершенно новую ячейку, если в корзине нет клеток желаемого типа. Как только вы создали достаточное количество ячеек для заполнения экрана, при прокрутке системе, вероятно, не потребуется создавать новые ячейки.
Назад к индикатору активности на ячейке.
Вы добавляете индикатор активности в ячейку и начинаете вращаться. Затем пользователь прокручивает эту ячейку за кадром. Эта ячейка будет повторно использована для отображения другой строки. Вероятно, в какой-то момент вы увидите вновь открытую ячейку с индикатором активности, которого вы не ожидаете.
Если пользователь затем прокручивает назад к строке, в которую вы добавили индикатор активности, прежде чем он будет иметь индикатор активности вращения, если вы не настроите новую ячейку для этой строки, чтобы иметь ее, или ячейку, которую вы получаете из корзины происходит индикатор вращающейся активности.
Каждый раз, когда вы меняете состояние ячейки, вам нужно сохранить информацию о том, что вы сделали с вашей моделью данных («ячейка в строке 6 ждет при загрузке»).
Затем, в вашем методе cellForRowAtIndexPath
, вам необходимо установить настроить ячейку. Создайте прототипы соты, поэтому ячейка всегда имеет индикатор активности, но она скрыта, если не вращается. Если ячейке для строки требуется индикатор активности, который должен вращаться, установите его на вращение. Если для этого нет необходимости в индикаторе вращающейся активности, установите явно значение индикатора в состояние НЧ (поскольку вы можете иметь дело с переработанной ячейкой, которая была сброшена в корзину с индикатором вращающейся активности). Также установите для всех текстовых полей/меток/текстовых представлений их состояния по умолчанию. Предположим, что каждый вид ячейки, который мог быть изменен из состояния WAS по умолчанию, изменился с состояния по умолчанию и явно установил его в состояние по умолчанию.