UITextField поворачивает места с UILabel в UITableView во время прокрутки - PullRequest
1 голос
/ 25 июля 2010

У меня странная проблема с UITableView и UITextField внутри ячейки (как подпредставление).

В виде окна (UITableView, сгруппированный, прокручиваемый) есть два раздела.

В первом разделе 5 строк:

1.1 - cell with UITextField 
1.2 - cell with UILabel
1.3 - cell
1.4 - cell with UITextField
1.5 - cell with UISwitchButton

и второй раздел имеет 1 строку:

2.1 - cell

Сценарий : я касаюсь строки 1.1, и появляется клавиатура. Я могу ввести текст.

Проблема: когда я прокручиваю UITableView до строки 2.1, не нажимая Done на клавиатуре (чтобы клавиатура все еще была на экране), а затем я нажимаю Done что-то странное происходит, и подпредставление ячейки 1.2 с UILabel поворачивается местами с подпредставлением ячейки 1.1 с UITextField.

Я пробовал обходной путь с self.tableView.scrollEnabled = NO;, это помогает, но я действительно хочу использовать прокрутку.

1 Ответ

1 голос
/ 25 июля 2010

Скорее всего, это вызвано тем, что ваше табличное представление повторно использует ячейки.UITableView пытается сохранить как можно меньше ячеек в памяти, поэтому при наличии 5 строк на экране ваше табличное представление будет выглядеть так:

cell 1 
cell 2
cell 3 
cell 4 
cell 5

Если вы затем прокрутите вниз, чтобы ячейки 1 и 2 скрыли ваше табличное представлениебудет выглядеть так

cell 3
cell 4
cell 5
cell 1
cell 2

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

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

...