2016-06-30 3 views
0

Я новичок в Xcode, и у меня очень простой макет с квадратным ImageView с двумя кнопками под ним. Я обертываю их в UIView под названием Box (в качестве целевой поднабора для viewForZoomingInScrollView), который завернут в ScrollView.Как настроить приложение и/или заполнить экран?

Я попытался построить его двумя разными способами с помощью шаблона SingleView. В первом случае я изменил представление ViewController на ScrollView, как это.

enter image description here

Во-вторых, я также попробовал с Scrollview внутри зрения ViewController как это.

enter image description here

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

* OMG, я решил все мои вопросы управления и действия ресурсов в один день, и теперь я провел почти неделю борется с форматированием *

Когда у меня нет никаких ограничений, как это:

enter image description here

Приложение открывается следующим образом. Просмотр черн, ScrollView фиолетовый, Коробка DKGray и ImageView является LTGray

View is Black, ScrollView is Purple, Box is DKGray, and ImageView is LTGray

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

enter image description here

Если добавить центрирования ограничения на ScrollView и Box,

enter image description here

ограничения Scrollview в уважаются, но Box не являются. (На самом деле, когда приложение открывает окно заполняет ScrollView, только после того, как ущемление, что коробка идет вверх в левом верхнем углу. Может прокрутке уничтожить ограничения ...? Должен ли я поставить ограничения в scrollViewDidEndZooming?)

enter image description here

Вот мои текущие вопросы. Когда Layout не имеет достаточных ограничений, он должен их добавить. Имеются ли ограничения, которые он добавляет, имеют приоритет над моими? Есть ли способ увидеть, какие ограничения он добавляет? Я получаю эти предупреждения с ограничениями выше.

enter image description here

Более выгибая Вопрос: Как я могу получить его, чтобы быть в центре экрана IOS, или заполнить экран? Я предполагаю, что есть решение интерфейса Builder, и решение кода, или оба, будет представлять интерес.

Спасибо за чтение.

+0

Какие ограничения вы добавили? –

+1

Разве не здорово, что вопросы могут быть проголосованы без объяснений? Это действительно поощряет использование Stackoverflow. – adazacom

+0

По какой-то причине в первой ситуации никаких ограничений не требовалось. Во-вторых, он жаловался, поэтому добавил «предлагаемые ограничения». Изображение будет прикреплено к верхней, правой и левой части окна, а кнопки прикреплены к изображению сверху и снизу окна внизу. – adazacom

ответ

1

Попробуйте выбрать свой scrollView и в меню Pin autoLyout попытайтесь добавить эти ограничения.

enter image description here

+0

Спасибо за помощь. Я попытался добавить ограничения, как эти и все разные способы ScrollView и Box, но я, похоже, не поднимаюсь достаточно высоко в иерархии. Они просто видят, что они влияют на то, что происходит внутри прямоугольника, прикрепленного к верхнему левому краю, не позиционируя этот прямоугольник на экране. – adazacom

+0

поделиться своим проектом может быть, мы сможем помочь –

+0

Как это сделать? – adazacom

2

Изменение выравнивания элемента

Каждый элемент должен иметь ограничения, чтобы обозначить, где она должна отображаться в его родителей. то есть прямо сейчас у вас есть изображение внутри представления внутри прокрутки. Поэтому каждый из этих трех элементов должен иметь ограничения.

Для каждого элемента:

  1. Щелкните элемент
  2. Нажмите «Добавить новую расстановку контрсилами» кнопку в правом нижнем углу
  3. Установите флажок «Горизонтально в контейнере» и «Вертикально в контейнере» а затем нажмите кнопку «Добавить 2 ограничения»

Запустите приложение, и теперь вы должны увидеть, что изображение выровнено по центру, как по горизонтали, так и по вертикали.

Изменение размера элемента динамически Это также легко сделать через раскадровки. Это видео покажет вам, как это сделать: https://www.youtube.com/watch?v=aSsR1NlQvMA Единственное, что вам нужно сделать с каждым элементом, как описано выше.

+0

Спасибо, что ответили. Я добавил больше вещей, которые я пробовал выше. Когда я добавляю ограничения на центрирование, ScrollView центрируется, но Box - нет. – adazacom

+0

Я хотел бы установить Box на почти 100% меньшего размера размера экрана. Должен ли я делать это в коде? – adazacom

+0

Хорошо - я удалю все ограничения из элемента box и повторю попытку. Иногда они конфликтуют. Также проверьте навигатор проблем - вверху слева, где вы перемещаетесь по файлам проекта, вы заметите, что значок папки выбран. Три из них - значок предупреждения. Любое из предупреждений здесь относится к элементу 'box'? Я обновлю свой первоначальный комментарий, чтобы указать, как изменить размер элемента. – Christie