UITextField медленно инициализируется? - PullRequest
1 голос
/ 22 августа 2011

Я помещаю около 100 UITextFields программно в UIScrollView для сложного приложения для ввода данных (не спрашивайте .... bletch), и я обнаружил, что создание всех этих UITextFields занимает слишком много времени ... что-тонапример, 4 секунды.

Есть ли лучший или более быстрый способ программно создать так много объектов пользовательского интерфейса?

Например, было бы разумнее загрузить Xib / Nib и попытаться изменить его какнужно?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 29 апреля 2012

Задумывались ли вы о создании пары UITextField и их повторном использовании, когда они за кадром, как это делает UITableView с клетками?

1 голос
/ 29 апреля 2012

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

Вернуться к теме: Проблема не в фактическом создании вашего UITextFields.Это способ, которым касание какао обрабатывает взгляды.Взгляды ужасно медленные.Ваша идея с перьями еще хуже, потому что они даже медленнее.

Единственный способ избежать этого - просто не рисовать (добавлять) много видов.Просто добавьте виды, которые в данный момент находятся в видимой области прокрутки, и удалите остальные.
Касание Какао уже имеет очень хороший контроль, оно называется UITableView.;)

Apple создала шаблон удаления / повторного использования в UITableView именно по этим причинам.
Поэтому я предлагаю вам использовать просмотр таблицы вместо просмотра прокрутки с пользовательскими ячейками (чтобы избежать разделителей и т. Д.)) и удалите из очереди / повторно используйте эти ячейки и заполните их UITextFields, которые вы где-то храните внутри массива.

0 голосов
/ 29 апреля 2012

Моя первая идея - написать таймер и загружать их 1 на 1 (или более) небольшими шагами, чтобы пользовательский интерфейс не зависал (это все равно займет 4 секунды, но, по крайней мере, пользователь может ввести в загруженный текстполя)

здесь это как сделать таймер

...