Динамическая высота в DatePicker


#1

Есть TableView, на котором есть 2 ячейки. Мне нужно чтобы DatePicker открывался на все оставшееся пространство снизу (UIViewController на пол экрана).

В зависимости от устройства, чтобы DatePicker занимал все оставшееся пространство после 2 ячеек и не перекрывал сами ячейки. Сам он инициализируются в классе ячейки.
Какое найти решение? TopAnchor не крепится к bottomAnchor ячейки, а константу задать не могу.

Большое спасибо! Долго искала в интернете, может кто знает здесь)


#2

А можно немного детальнее?
Таблица с 2мя ячейками только на половину экрана?
DatePicker будет находится в таблице или после нее?
Будет ли работать скролл в таблице или ячейки будут вмещаться в половину экрана любого девайса без скрола?


#3

Вот так выглядит мой экран. Две ячейки не скроллятся, я математически высчитываю высоту DatePicker, просто думала есть какой-то более красивый и программный способ.

Теперь у меня вопрос другой возник, уж извините мою настырность. Если я хочу добавить кнопку Done справа от “Выбрать период” - это обязательно должен быть UIToolBar?


#4

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

По поводу кнопки: можно сделать самому, добавить кнопку справа в углу.

P.S. по сути весь этот скрин можно сделать через VerticalStackView.

Примерная иерархия элементов

  • stackView // vertical, fill, fill, space 0
    • view // fixed height
      • button “Done”
    • view // fixed height
      • label “Выбрать период”
    • view // fixed height
      • label “Начало”
    • view // fixed height, divider style
    • view // fixed height
      • label “Конец”
    • datePicker