Swift: как настроить ширину средства выбора даты с режимом, установленным только на время

#ios #swift #user-interface #uidatepicker

#iOS #swift #пользовательский интерфейс #uidatepicker

Вопрос:

Кажется, что справа от компонента средства выбора даты есть пустое место:

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

И не имеет значения, увеличиваю я или уменьшаю значение ширины / высоты его рамки; он остается стандартного размера.

     let datePicker = UIDatePicker(frame: CGRect(x: 20, y: 100, width: 500, height: 200))
    datePicker.datePickerMode = .date
    view.addSubview(datePicker)
    
  

Мой вопрос в том, можно ли его настроить?

редактировать: Итак, мне удалось найти его короткую форму, но ее можно добавить только через раскадровку.

Вот вид:

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

Первый верхний сборщик добавляется программно, а второй — через раскадровку. По какой-то причине я не могу уменьшить размер программно созданного средства выбора…

Ответ №1:

Вы можете просто спросить средство выбора даты, какой размер достаточен 😉

Вариант A

 let datePicker = UIDatePicker()
datePicker.datePickerMode = .date

// Let it size itself to its preferred size
datePicker.sizeToFit()
// Set the frame without changing the size
datePicker.frame = .init(x: 20, y: 100, width: datePicker.bounds.size.width, height: datePicker.bounds.size.height)

view.addSubview(datePicker)
  

Вариант B

 let datePicker = UIDatePicker()
datePicker.datePickerMode = .date

// Ask the picker for its preferred size
let datePickerPreferredSize = datePicker.systemLayoutSizeFitting(view.bounds.size)
// Set the frame using that size
datePicker.frame = .init(x: 20, y: 100, width: datePickerPreferredSize.width, height: datePickerPreferredSize.height)

view.addSubview(datePicker)