Выравнивание 3 кнопок с динамическим содержимым в объектном C с использованием Autolayout

У меня есть 3 кнопки одна под другой. Требуется, чтобы все они были выровнены по центру. Также динамическое содержимое должно соответствовать этим 3 кнопкам. Пожалуйста, помогите мне с этой проблемой. У меня есть лишь смутное представление об объемах контента, сопротивлении сжатию и собственном размере контента. Заранее большое спасибо.


person iOSManiac    schedule 05.01.2017    source источник
comment
Самым простым решением было бы использовать представление стека для кнопок и установить это представление стека по центру. для динамического набора содержимого stackviews heightConstraint больше, чем равное отношение.   -  person Vishal Sonawane    schedule 05.01.2017
comment
@Vishal: Привет, Вишал, спасибо за ваш комментарий. Не могли бы вы рассказать мне о реализации того же самого, ниже iOS 9?   -  person iOSManiac    schedule 09.01.2017
comment
Это будет то же самое. Просто используйте UIView вместо stackView. Примените одинаковое ограничение высоты и одинаковой ширины ко всем кнопкам и обработайте ограничение высоты контейнера UIView.   -  person Vishal Sonawane    schedule 09.01.2017


Ответы (2)


Для iOS 9 и более поздних версий:

Используйте UIStackView, чтобы вставить все ваши buttons и установите этот stack view в центре view. Для динамического содержимого установите stackView's heightConstraint больше, чем равно relation (>=).

Для iOS 8 и более ранних версий:

Просто используйте UIView вместо UIStackView. Остальные вещи будут такими же.

введите здесь описание изображения

person Vishal Sonawane    schedule 09.01.2017

Вставьте все UIBUtton в UIStackView и установите свойства stackViews в соответствии с вашими потребностями.

Чтобы получить представление, см. этот ответ.

Примечание. UIStackView доступно только для iOS >= 9.

person shallowThought    schedule 05.01.2017
comment
В зависимости от iOS он должен поддерживать. Stackviews доступны только на iOS 9+, если это не проблема, то да, проще всего использовать stackview. - person Pancho; 05.01.2017
comment
@Панчо: Правильно. Добавлена ​​подсказка к ответу. - person shallowThought; 05.01.2017
comment
Что можно сделать, если версия ‹ iOS 9? Большое спасибо за ваш ответ и комментарии. - person iOSManiac; 05.01.2017
comment
@shallowThought: Большое спасибо за помощь. - person iOSManiac; 09.01.2017