Привет программистам друзья. У меня ситуация, которую я не могу объяснить. Я оставлю отпечатки на экранах, а затем опишу, что произошло.

-

-

[ - ] [ 3 ]

Сначала я выбираю количество в окне выбора, и оно изменяется в поле UITextField. Затем, когда я прокручиваю экран, 6-я строка таблицы содержит информацию PickerView из 1-й строки, а затем, когда я поднимаю экран вверх, данные теряются. У кого-нибудь когда-нибудь была подобная проблема?

-2
Pedro Paulo 23 Мар 2017 в 02:45

2 ответа

Лучший ответ

Когда количество выбрано, вам нужно сохранить эту информацию в вашей модели данных. UITableView только создает достаточно строк, чтобы показать то, что видно на экране, и заново создает строки, когда они прокручиваются в вид. Таким образом, вам нужно хранить информацию о количестве в другом месте, чтобы предоставить ее табличному представлению, когда оно снова запрашивает информацию о строке. Надеюсь, это имеет смысл?

1
Fahim 22 Мар 2017 в 23:51

Как упоминал Paulw11, ячейки в UITableView или UICollectionView используются повторно, поэтому, если вы вручную создаете UIPickerView внутри самой ячейки, у вас есть два варианта:

1) Вместо того, чтобы создавать UIPickerView через код, создайте подкласс UICollectionViewCell и добавьте UIPickerView либо в Xib / Storyboard (где бы вы ни создавали представление ячейки).

2) В функции prepareForReuse () в ячейке убедитесь, что переменная UIPickerView не равна nil, а если нет, то удалите ее и установите для nil.

1
Jay 22 Мар 2017 в 23:51