как мне работать с более высоким видом в конструкторе интерфейсов?

Хорошо, поэтому я учусь использовать UIScrollView в построителе интерфейса. поскольку сам scrollView не имеет содержимого, я создал другое представление, contentView, для хранения моих элементов управления и прокручиваемого содержимого. в это представление я помещаю элементы управления, метки и т. д., а затем в моем коде я устанавливаю contentSize для scrollView равным размеру этого contentView.

Мой вопрос кажется потрясающе простым и настолько очевидным, что я, должно быть, что-то упустил. когда я создал этот XIB в IB, я получил ваше стандартное пустое окно интерфейса iPhone. Я сбросил scrollView поверх него, он занял все окно. Я сбросил представление поверх этого, оно заняло всю прокрутку. Я добавил несколько элементов управления, которые до сих пор я вижу внутри прямоугольника contentView в IB.

У меня вопрос: как мне работать / добавлять элементы управления, которые находятся вне видимой части contentView в IB? РЖУ НЕ МОГУ. это кажется таким простым, но я просто не понимаю. Я могу установить высоту представления содержимого или перетащить прямоугольник на все, что мне нравится (и действительно, в этом весь смысл прокрутки), но фиксированное окно пользовательского интерфейса из IB не будет расширяться, поэтому я могу видеть «закадровую» часть ContentView, чтобы добавить дополнительные элементы управления. Это похоже на то, что он просто зафиксирован в этом размере, потому что это размер одного экрана iPhone, и он не позволяет мне сделать его больше / выше.

что я сделал не так?

-a


person Aubin LaBrosse    schedule 23.11.2010    source источник
comment
его раздражает, что вы не можете видеть часть вне экрана, вы можете установить кадры вручную, и они будут за пределами экрана, но вы их не увидите, я действительно не пытался решить эту проблему, но это не кажется чем-то очевидным, если это возможно быть сделано вообще.   -  person Daniel    schedule 24.11.2010
comment
@Daniel - см. Принятый ответ ниже. как только вы отключите все имитируемые элементы пользовательского интерфейса, вы сможете сделать вид настолько высоким, насколько захотите. очевидно, если вы собираетесь сделать его выше, чем экран на iPhone, вам нужно будет поместить его в ScrollView   -  person Aubin LaBrosse    schedule 25.11.2010


Ответы (6)


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

Например, здесь я выбрал контроллер просмотра фотографий и установил размер на правой боковой панели как «iPad Full Screen» - но я также мог изменить его на «произвольную форму», чтобы установить любую высоту, которую я хотел.

Выбор ВК в построителе интерфейса

Набор нестандартных размеров

person Kendall Helmstetter Gelner    schedule 23.11.2010
comment
В более новых версиях Xcode вместо этого используется термин Freeform. - person ThomasW; 28.09.2015
comment
Думаю, этот ответ - то, что мне тоже нужно, но я его не понимаю. Что представляют собой смоделированные элементы пользовательского интерфейса? Что значит выключить элемент пользовательского интерфейса? - person sigfpe; 30.10.2015
comment
@sigfpe: я добавил изображения, показывающие, где установлены смоделированные элементы пользовательского интерфейса. - person Kendall Helmstetter Gelner; 30.10.2015

Сначала добавьте ViewController любым удобным для вас способом. Затем в построителе интерфейса щелкните значок контроллера представления (слева). В инспекторе соединений щелкните значок линейки «Показать инспектор размеров». Появится список опций для смоделированного размера, измените его на «Произвольная форма» и увеличьте высоту до любого желаемого размера. Надеюсь это поможет.

person Hafeez    schedule 23.06.2014

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

person Aubin LaBrosse    schedule 23.11.2010

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

введите описание изображения здесь

person SilentNot    schedule 19.02.2016

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

Что касается второй части вашего вопроса, вы можете размещать элементы непосредственно в просмотре прокрутки (в конце концов, это вид) в качестве подвидов. Если вы хотите, чтобы они были за пределами экрана, просто установите для их кадра те конкретные координаты x, y, в которых вы хотите, чтобы он находился. Вам нужно будет убедиться, что свойство вашего scrollview contentSize достаточно велико, хотя для размещения всего вашего контента, это то, что позволяет прокручивать по горизонтали / вертикали.

person jer    schedule 23.11.2010

Вероятно, вы захотите создать закадровые элементы программно, а не использовать xibs.

person bbarnhart    schedule 23.11.2010