iphone uitableview или uiscrollview лучше? - PullRequest
1 голос
/ 08 июля 2011

Относительно отрицательного комментария здесь я упрощаю свой вопрос небольшими шагами

У меня есть приложение на основе представления, которое взаимодействует с веб-службой и получает xml, анализирует xml и сопоставляет его содержание с соответствующим компонентом представления (например, если на этой дате отображается вопрос с помощью DatePicker, если в вопросе есть 2 значения, отображается его с сегментированный элемент управления, если больше с представителем выбора и т. д.), так что это динамический вопросник со многими страницами.

1-приложение получает XML

2-Разбор XML и получение последних вопросов без ответов (может быть неограниченное количество вопросов на каждой странице), каждый вопрос нужно задавать либо с помощью текстового поля, либо с помощью средства выбора, либо сегментированного управления в зависимости от типа вопроса, также может потребоваться несколько меток для объяснений, уведомлений о проверке и метки вопроса. Каждый вопрос и метка должны иметь разные шрифты и цвета, определенные в xml.

3 - Пользователь отвечает на все вопросы на странице и нажимает кнопку отправки.

4-Web-сервис получает, проверяет ответы и отправляет новые вопросы в зависимости от полученных ответов.

5-APP получает новый XML (каждый XML включает в себя целое состояние, то есть все предыдущие ответы на вопросы) и анализирует, чтобы выяснить последние оставшиеся без ответа вопросы.

6-Пользователь снова отвечает, отправляет вопросы и ждет следующего набора вопросов, пока не будет задан вопрос

7-ИЛИ пользователь может захотеть вернуться и отредактировать некоторые вопросы на предыдущих страницах. НО, если он редактирует какой-либо вопрос на предыдущих страницах, то страницы, на которые ответили после этой страницы, больше не действительны, потому что каждый набор вопросов, отправляемых сервером вопросов, зависит от ранее отвеченных вопросов, поэтому ему нужно удалить все последующие вопросы из XML и отправить обратно запрос, как если бы это была последняя страница, ожидающая ответа.

Вопрос:

1-Должен ли я использовать UiScrollView или TableView? и что здесь общего объектно-ориентированного дизайна

Ответы [ 3 ]

2 голосов
/ 08 июля 2011

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

2 голосов
/ 08 июля 2011

Если вы хотите, чтобы в списке было много вопросов с неизвестным номером, вы должны использовать представление таблицы. Тогда вы будете иметь гораздо большую производительность, и вам будет проще кодировать.

2 голосов
/ 08 июля 2011

Вы должны использовать UINavigationController, и внутри каждого представления там отобразить все вопросы, используя UITableView (т. Е. Нажмите UITableViewController на контроллере навигации).

Контроллер навигации позволяетдля естественного представления взаимодействия, которое вы описываете с вашим сервером, а также позволяет вернуться через наборы вопросов (но также сделать недействительными ни одну страницу после той, к которой вы вернулись).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...