2016-02-02 5 views
-1

Я пытался сделать вид экрана, как это:
Неожиданное UIImageView Auto Layout Поведение - IOS 8

Но когда я запускаю его он продолжает появляться, как это:

Так пока я судимый отлаживать Просмотр иерархию, но отладчик показывает фактический ожидаемый вид:

Я придумал обходной путем, поместив UIImageView в верхнюю панель в иерархии представления, поэтому, когда она расширится, она попадает под верхнюю панель, а не сверху.

EDIT:
Дно белая коробка не пустое пространство, на самом деле вид предназначен для размещения 2 кнопки.
Мои ограничения устанавливаются следующим образом:

  • Верхний баннер:
    • высота: 50
    • расстояние по вертикали наверх Layout Guide: 0
    • переднего и заднего расстояния до надтаблицы: 0
  • Изображение:
    • расстояние по вертикали к началу баннера: 0
    • передней и задней интервал до надтаблицы: 0
  • Вид снизу (белая коробка):
    • расстояние по вертикали изображения: 0
    • передней и задней расстояние до надтаблицы: 0
    • пропорционально высота изображения: 1: 3

Других видов в иерархии и других ограничений нет.

ответ

0

Я нашел и проблему, и решение этой проблемы. UIImageView действительно ведет себя так, как ожидалось, но изображение, которое оно содержит, выливается из вида, как указано в this answer.
Решение, подробно описанное в ответе, приведенном в качестве ответа, прост, как установить imageView.clipsToBounds = true.

0

Вам необходимо разместить vertical spacing между верхним баннером (приложение «Amigo invesa app») и средним изображением (изображение с неизвестными зелеными фруктами/овощами). Но есть неясная точка, которая следит за

  1. Точно сколько расстояния вы хотите нижней часть среднего зрения изображения

Например, вы хотите расстояние 64px между средним изображением и нижней части посмотрите вид контроллера, затем не забудьте поставить vertical spacing с интервалом 64px.

По вашему второму редактированию ::
все Constraint вы перечислили в нижней части.Но есть некоторые недостающие ограничения:

Высота верхнего баннера, но вы можете изменить размер баннера на большом экране, поэтому вам нужно указать высоту другого компонента (явно или неявно). Здесь явно, я имею в виду жестко заданный высотой среднего изображения & нижний белый вид высоты & неявно означает соотношение между обоими из них, как вы упомянули proportional height to Image: 1:3. В неявном случае средняя высота изображения не указана, поэтому высота нижнего белого представления не может быть задана автозагрузкой. Это двусмысленная ситуация для автоспуска.

Советую указать конкретную высоту как для верхнего баннера & нижний белый вид & удалить ограничение отношения. Это должно делать то, что вы хотите.

Счастливый дизайн gui.

+0

У меня уже было это ограничение. Прошу прощения за то, что я не дал эту информацию. Отредактировал мой вопрос, чтобы включить все детали иерархии представлений и ограничений. – Jaceee

+0

О, мой! Я забыл указать ограничение высоты для баннера, он уже был настроен таким образом, и Auto Layout должен иметь возможность определять высоту изображения и нижний вид для них, чтобы заполнить все оставшееся пространство. – Jaceee

+0

укажите высоту нижнего белого изображения и удалите ограничение пропорции, как указано в ответе, а затем посмотрите, что будет :) –

Смежные вопросы