2014-01-06 2 views
2

Я по-прежнему пытаюсь склонить голову к ограничениям и объективным передовым методам в целом.Uibutton contraints в двух макетах

Мне нужно динамически создавать от 1 до 6 UIButtons в зависимости от переменной. Я в порядке с этой частью, но смущен тем, как разместить их, учитывая, что:

  1. Количество кнопок может быть от 1 до 6.
  2. Кнопки должны быть одинакового размера.
  3. Пейзажная и портретная ориентации будут иметь разные макеты.
  4. Они должны «плавать» слева в ландшафтном представлении и вертикально выравниваться в верхней части в портретном режиме.

enter image description here

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

ответ

1

В конечном итоге будет лучше использовать UICollectionView. Подкласс UICollectionView и добавьте его в свою раскадровку. Сделайте выход из коллекции в свой контроллер просмотра и установите его делегат и источник данных. Добавьте <UICollectionViewDelegate> и <UICollectionViewDataSource> в контроллер вашего представления и реализуйте методы делегата. Для кнопок сделайте обычным UICollectionViewCell с UIButton в качестве подзаголовка. Затем в методе cell:ForRowAtIndexpath: инициализируйте подкласс UICollectionViewCell и задайте свойства UIButton. Возможно, это не тот ответ, который вам нужен, но UICollectionView предлагает гораздо большую гибкость в отношении макетов. Вы можете узнать больше о UICollectionViewDelegateFlowLayouthere.

+0

Благодарим за информацию! Я собираюсь изучить все это сейчас и вернуться к вам :) – Dol

+0

Да, это путь вперед, нашла здесь отличный учебник -> http://www.appcoda.com/ios-programming-uicollectionview-tutorial/ – Dol

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