2014-12-16 3 views
-7

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

Навигационная панель + строка состояния содержит 64 точки. Исправлено ограничение по высоте 60 пунктов, установленных для приветствия. Исправлено ограничение высоты 145 пунктов, установленных на коричневый ящик. Таблет занимает 50 очков.

Оставшаяся высота 417 точек должна быть разделена на две части. Зеленые и красные коробки имеют свои прокрутки в себе. Scrollviews имеет ограничение макета той же высоты, верхнего, нижнего, верхнего и конечного ограничений, что и для его супервизора. После того, как макет сделан, я проверил, что красный ящик имеет высоту 208.66667, а зеленая коробка - 208.3333. Но каждый вид прокрутки имеет высоту 208.6667. Таким образом, просмотр прокрутки в зеленом поле становится вертикально прокручиваемым, потому что его высота (высота содержимого) больше, чем высота надстройки.

enter image description here

+0

В чем вопрос? Если вас беспокоит разница между 208.6 и 208.3, то это меньше точки и около 20% от точки 208.5. Никто не заметит. Для всех практических целей они имеют одинаковую высоту. На самом деле, вы тестируете на iPhone 6+? Это объясняет разделение на три. – Fogmeister

+0

Я думаю, что у вас есть ограничение нижнего вертикального интервала, которое делает эту проблему. Можете ли вы поделиться файлом nib или раскадровкой, чтобы продолжить расследование? –

+0

Высота полоски табуляции должна быть 49, поэтому высота равна 209, см. Https://www.dropbox.com/s/rwx18d1yvfhose0/Main.storyboard?dl=0 – gabbler

ответ

0

У вас есть несколько вариантов.

  1. Изменить размер прокрутки на 208px и игнорировать частичный пиксель слева.
  2. Отключить полосы прокрутки в списках прокрутки, если они вам не нужны.
  3. Добавьте пиксель в одну из других областей, чтобы красные и зеленые точки могли быть равными высотам.
  4. Размер представлений, которые вы хотите, а не только ограничение «равной высоты».
+0

Спасибо за ответ. Поскольку один код обрабатывает разные устройства, я сделал это таким образом, чтобы обрабатывать разные iPhone. Я не мог отключить горизонтальную прокрутку, но я могу отключить вертикальную прокрутку. –