Вертикально добавить элементы в scrollview: различия между Java и iPhone SDK? - PullRequest
0 голосов
/ 24 октября 2010

Народ,

из мира Java / Swing, я иногда удивляюсь программированию пользовательского интерфейса на iPhone.Я провел последние часы с Google, чтобы получить информацию, но, похоже, я задавал неправильные вопросы, слишком много думая о Java.Не могли бы вы указать мне ресурсы, чтобы лучше ознакомиться с концепциями графического интерфейса, чтобы иметь возможность реализовать следующие функциональные возможности:

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

В Java я бы создал компонент, который отображает один такой раздел.Менеджер по расположению вычислит предпочтительную высоту компонентов (с отображением или без отображения описания).

Затем в Java я создам панель с менеджером по вертикальной компоновке и последовательно добавлю мои компоненты.Эта панель будет помещена в область прокрутки;панель прокрутки попросит панель создать макет, а затем отобразит на ней окно просмотра, если, например, высота больше, чем высота панели прокрутки.

То, что Java предоставляет мне:

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

ЧтоНа iPhone я понял:

  • Я могу динамически добавлять представления в качестве подпредставления к представлению, например, в виде прокрутки, вызывая addSubview
  • Я даже могу удалить этот материал, используя removeFromSubview (как описано здесь Очистить содержимое UIScrollView )

Чего я не понимаю на iPhone:

  • соответствует ли один просмотр всегда соответствуетдо видимого экрана (я до сих пор использовал навигацию по вкладкам и навигационной панели, и там, когда я устанавливал новый вид, он заполняет текущий видимый экран минус пространство, необходимое для двух полос)?
  • или возможно определить представление, которое содержит метку сверху («север») и текст в центре;Если да, может ли такое представление автоматически определять его высоту?
  • Могу ли я реализовать свой пример аналогично Java, или мне нужно было бы самостоятельно рассчитать все размеры и координаты отдельных компонентов?(Этот пример, кажется, затрагивает эту тему: iPhone scrollView динамически добавляет элементы с идентификатором )

В качестве альтернативы, могу ли я использовать WebView и визуализировать свои вещи как локальный HTML, используя JavaScript дляпоказать или скрыть узлы?

Спасибо за любую подсказку или ссылку!

1 Ответ

0 голосов
/ 24 октября 2010

В Какао нет менеджеров компоновки, представления меняются в соответствии с их настройками распорок и пружин.Для получения информации об этом прочитайте документацию: http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/IB_UserGuide/Layout/Layout.html

Чтобы создать «представление, которое содержит метку сверху и текст в центре», вы создаете представление с подпредставлениями - одно представляет собой метку сверху, второеТекстовое представление в центре.Если вы правильно сконфигурируете распорки / пружины для всех подпредставлений, они будут автоматически изменяться при изменении размера представления контейнера.

Вы также должны привыкнуть к Интерфейсному Разработчику, создание представлений в коде - настоящая боль в заднице.

...