Swift:如何在模式设置为“仅限时间”的情况下调整日期选择器的宽度
Swift: How to adjust width of Date Picker with mode set to Time Only
日期选择器组件右侧似乎有些浪费space:
而且我增加或减少它的框架width/height的值都没有关系;它保持标准尺寸。
let datePicker = UIDatePicker(frame: CGRect(x: 20, y: 100, width: 500, height: 200))
datePicker.datePickerMode = .date
view.addSubview(datePicker)
我的问题是,可以调整吗?
编辑:所以我设法找到了它的简短形式,但那只能通过故事板添加。
视图如下:
最上面的第一个选择器以编程方式添加,第二个通过故事板添加。出于某种原因,我无法缩小以编程方式创建的选择器...
您可以直接询问日期选择器哪个大小合适 ;)
选项 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)
日期选择器组件右侧似乎有些浪费space:
而且我增加或减少它的框架width/height的值都没有关系;它保持标准尺寸。
let datePicker = UIDatePicker(frame: CGRect(x: 20, y: 100, width: 500, height: 200))
datePicker.datePickerMode = .date
view.addSubview(datePicker)
我的问题是,可以调整吗?
编辑:所以我设法找到了它的简短形式,但那只能通过故事板添加。
视图如下:
最上面的第一个选择器以编程方式添加,第二个通过故事板添加。出于某种原因,我无法缩小以编程方式创建的选择器...
您可以直接询问日期选择器哪个大小合适 ;)
选项 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)