Народ,
из мира Java / Swing, я иногда удивляюсь программированию пользовательского интерфейса на iPhone.Я провел последние часы с Google, чтобы получить информацию, но, похоже, я задавал неправильные вопросы, слишком много думая о Java.Не могли бы вы указать мне ресурсы, чтобы лучше ознакомиться с концепциями графического интерфейса, чтобы иметь возможность реализовать следующие функциональные возможности:
По сути, я хочу создать вертикально прокручиваемое представление, представляющее структурированный текст (например, рецепт).Каждый шаг состоит из заголовка и текстового описания.Поскольку я хочу свернуть и развернуть такие шаги, заголовок будет каким-то интерактивным, и при нажатии на него будет отображаться или скрываться описание.
В Java я бы создал компонент, который отображает один такой раздел.Менеджер по расположению вычислит предпочтительную высоту компонентов (с отображением или без отображения описания).
Затем в Java я создам панель с менеджером по вертикальной компоновке и последовательно добавлю мои компоненты.Эта панель будет помещена в область прокрутки;панель прокрутки попросит панель создать макет, а затем отобразит на ней окно просмотра, если, например, высота больше, чем высота панели прокрутки.
То, что Java предоставляет мне:
- расположение элементов (вычисление их предпочтительной высоты и ширины), поэтому нет необходимости иметь дело с координатами и размерами
- динамическое создание пользовательских интерфейсов путем создания и добавления компонентов во время выполнения
ЧтоНа iPhone я понял:
- Я могу динамически добавлять представления в качестве подпредставления к представлению, например, в виде прокрутки, вызывая addSubview
- Я даже могу удалить этот материал, используя removeFromSubview (как описано здесь Очистить содержимое UIScrollView )
Чего я не понимаю на iPhone:
- соответствует ли один просмотр всегда соответствуетдо видимого экрана (я до сих пор использовал навигацию по вкладкам и навигационной панели, и там, когда я устанавливал новый вид, он заполняет текущий видимый экран минус пространство, необходимое для двух полос)?
- или возможно определить представление, которое содержит метку сверху («север») и текст в центре;Если да, может ли такое представление автоматически определять его высоту?
- Могу ли я реализовать свой пример аналогично Java, или мне нужно было бы самостоятельно рассчитать все размеры и координаты отдельных компонентов?(Этот пример, кажется, затрагивает эту тему: iPhone scrollView динамически добавляет элементы с идентификатором )
В качестве альтернативы, могу ли я использовать WebView и визуализировать свои вещи как локальный HTML, используя JavaScript дляпоказать или скрыть узлы?
Спасибо за любую подсказку или ссылку!