Как сделать правильно прокручиваемое меню с кнопками?

Я хочу сделать прокручиваемое меню (контроллер первого вида) с 4 кнопками. Каждая кнопка связана с определенным контроллером представления. Но хочу уточнить: после запуска приложения пользователь должен видеть только первые три кнопки на каждой версии iPhone (4, 4.7, 5.5) и ему нужно прокрутить вниз, чтобы увидеть еще одну кнопку. Должен ли я использовать представление стека с прокруткой? Должен ли я использовать UICollectionView (я обнаружил, что это хорошо для изображений, но не для кнопок)?

Спасибо всем за помощь!

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


person Iurii Ushakov    schedule 26.03.2017    source источник
comment
@lurii Ushakov использует табличное представление.   -  person Tushar Sharma    schedule 26.03.2017
comment
CollectionView или TableView, просто измерьте высоту при запуске и отрегулируйте высоту ячеек в соответствии с высотой вашего устройства.   -  person Michał Kwiecień    schedule 26.03.2017
comment
Можно ли настроить представление таблицы так, чтобы на каждой версии iPhone были видны только первые три кнопки?   -  person Iurii Ushakov    schedule 26.03.2017


Ответы (1)


Если вы используете UICollectionViewController (или UITableViewController, любой из них будет работать), вы можете расположить свою раскадровку следующим образом:

Макет раскадровки с использованием uitableviecontroller

Затем в вашем MyTableViewController (опять же, это также работает с UICollectionViewController) вы можете реализовать следующий метод, чтобы установить размер ячейки, равный трети высоты окна:

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    // get the height for the current view
    let viewHeight = self.view.frame.height

    // since we want 3 rows to appear at a time, simply divide the viewHeight by 3
    return viewHeight / 3
}
person Forest Kunecke    schedule 26.03.2017
comment
Поскольку высота известна и не различается для каждой ячейки, вы также можете установить UITableiView.rowHeight и не реализовывать этот метод делегата. - person dmorrow; 27.03.2017