2015-03-30 4 views
1

Возможно ли иметь вид с автозапуском, чтобы подзадача имела равную высоту с родителем минус константа?Использование ограничений автоопределения для определения высоты минус константа с раскадровкой

Иерархия UIView> UIScrollVIew> UITableView. Вид также встроен в UINavigationController

ответ

1

Да. Вы просто привязываете subview к верхней и нижней части своего супер-представления с постоянной установкой на смещение, которое вы хотите.

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

Edit после обсуждения:

UIScrollView должен знать размер вашего контента. Вы не можете просто использовать автоматическую компоновку без нескольких настроек.

Предположение макет мнение:

UIViewController -> UIScrollView -> UIView -> UITableView

Для вашего UIView, придавить сверху, снизу, слева и справа от UIScrollView.

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

Подключите UITable к UIView сверху, снизу, влево и вправо.

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

+0

Autolayout дает мне головную боль, я добавить «верхнее пространство для контейнера» и «Bottom пространства в контейнер», но я не вижу никакого эффекта – iamIcarus

+0

Только если я установить «Равный Высота "ограничивает, я вижу эффект. Есть ли способ добавить константу в этот равный край высоты? – iamIcarus

+0

Я замечаю, что вы сказали, что у вас есть UIScrollView. UITableView будет прокручиваться для вас, поэтому я не думаю, что вам это нужно. Это может также вызвать вашу проблему. Просто добавьте UITableView прямо в свой UIViewController и разместите его там по отношению к любым другим элементам, которые у вас есть. –

0

В Interface Builder:

  1. Четкие ограничения на вашем подвид
  2. Выберите подвид
  3. Выберите Закрепить в правом нижнем углу зрения ИБ
  4. Выберите нижний штифт и ввести константу (я вошел 30), выберите верхний вывод и введите 0.
  5. При необходимости выберите другие ограничения.
  6. Accept с помощью кнопки Добавить й ограничение enter image description here
+0

У меня есть UITableView как подзаголовок, и это имеет какое-то значение. Это его ребенок UIScrollVIew и UIView. Представление также встроено в UINavigationController – iamIcarus

+0

@iamIcarus - почему вы встраиваете UITableView в UIScrollView. UITableView наследуется от UIScrollView. Я предлагаю вам создать иерархию: UIView (1) -> UIView (2) -> UITableView и обработать (2) как Subview на скриншоте и настройках, как я предложил. – DanielS

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