2013-03-24 4 views
1

У меня есть Storyboard, содержащий вид с панелью навигации, моя цель состоит в том, чтобы иметь еще 3 элемент ниже (кнопки, представление, я полагаю, что это не имеет значение), которые простираются так, что все они имеют одинаковую высоту и придерживаются друг друга, т. е. не имеют промежутков между ними.Разрешения агностик одинакового размера элементов в раскадровке с помощью Auto-Layout

Я попытался добиться этого, используя AutoLayout, установив ограничения верхнего элемента на вертикальное расстояние 0 с помощью навигационной панели, вертикальное расстояние 0 с элементом ниже, а нижний элемент - с вертикальным шагом 0 с обоими нижний нижний нижний и элемент выше. Я также добавил ограничение, что все элементы имеют равную высоту, и все было хорошо, пока я не переключился с iPhone4 на вид iPhone5 в раскадровки редактора, когда он взорвал InterfaceBuilder удаления «прилипать к панели навигации» ограничения верхнего элемента и давая это фиксированный размер (который не равен двум другим).

Спрятаться с ним на некоторое время, чтобы абсолютная высота не существовала нигде в макете, но переключение между iPhone5 и iPhone4 прерывает все, что я делаю, либо удаляя некоторое ограничение, либо устанавливая какое-то другое значение в фиксированное значение.

ли кто-нибудь знает способ для достижения этой цели с помощью AutoLayout, или я должен, возможно, идти на UICollectionView с FlowLayout?

Или, говоря иначе, что было бы лучшим способом добиться трех элементов, чтобы придерживаться друг друга и сохранять равные высоты во всех возможных текущих и будущих размерах экрана в «UIViewControler + Navigation Bar в Storyboard ", используя InterfceBuilder?

(я не привыкать к идее сделать это в коде, я знаю, как идти об этом, но если это возможно с IB я бы именно так.)

ответ

2

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

+0

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

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