Как мне создать подпредставление корневого представления в Интерфейсном Разработчике? - PullRequest
0 голосов
/ 13 августа 2010

Я пытаюсь создать представление, полное элементов управления (кнопок, видов текста, меток и т. Д.), Которое можно прокручивать, поскольку у меня недостаточно места на экране для всех элементов управления. Я понимаю, что мне нужно, чтобы корневое представление в моем приложении было UIScrollView, и мне нужно прикрепить к нему UIView со всеми моими элементами управления. Проблема в том, что после того, как я установил в качестве корневого представления UIScrollView и добавил UIView к корневому представлению, Interface Builder не позволяет мне размещать какие-либо элементы управления, а просто помещает их все в центр. 1003 *

  1. Правильно ли я понимаю, как сделать прокрутку вида?
  2. Если так, как я могу заставить Интерфейсный Разработчик позволить мне позиционировать свои элементы управления?
  3. Как только я смогу это сделать, как я могу расположить элементы управления в Интерфейсном Разработчике за пределами размеров окна, поскольку оно будет прокручиваться?

Заранее большое спасибо за помощь!

1 Ответ

1 голос
/ 13 августа 2010

По моему опыту, вам лучше иметь UIView в качестве корневого представления, а затем UIScrollView в качестве единственного, заполняющего экран подпредставления этого представления.Сохраняет некоторые проблемы в коде (уродливые приведения) и при расширении (как потом добавить туда элемент с фиксированным экраном?)

Если вы хотите сохранить его в IB, либо

  • добавьте свой собственный пользовательский вид в библиотеку (извините, с этим нет опыта), или
  • просто поместите большой UIView в представление прокрутки и расположите элементы по их позиции x / y, или
  • установите строку состояния корневых представлений на неопределенную, чтобы вы могли изменить размер корневого представления до любого размера, необходимого для правильной компоновки содержимого просмотра прокрутки, а когда закончите, снова оберните его до 320x480 (но убедитесь, что вы отключили автоматическое изменение размеров нанужные элементы, или действие изменения размера уничтожит вашу работу), или
  • создайте UIView отдельно и перетащите его на место в качестве подпредставления прокрутки, в окне документа!используйте cmd-0, это окно! родительский объект загорится, прежде чем вы что-то добавите в него.Установите верхний левый x, y отброшенного подпредставления в 0,0.(этот метод требует, чтобы вы связывали все выходы при каждом перетаскивании)

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

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


Для ясности, мой типичный вид view-scrollview-view-elements выглядит с поддельными числами, такими как:

View (320x480-ish)
    Scroll View (320x480-ish)
        View (1024x1024)
            Label (positioned 0,0)
            Button (positioned 500,900)
            ImageView (1024x800, positioned 0,100)
    UISearchBar (possibly, always on screen, above scrollview or sliding in, ...)
...