如何为 UIDatePicker 设置正确的高度?

How to set the correct height for a UIDatePicker?

如何在不同 iOS 设备范围内正确设置 datePicker 的高度?我可以从 window 的宽度而不是高度得到宽度。

这是我的代码:

let origin = CGPoint(x: 0, y: 0)
let width = app_delegate.window!.frame.width
let size = CGSize(width: width, height: 300)
let frame = CGRect(origin:origin , size: size)
birthday.inputView = UIDatePicker(frame: frame)

我认为您混淆了 BoundsFrameFrame 是描述父视图的矩形。 Bounds 是局部矩形的。

如果您想要设备屏幕的高度和宽度,您需要使用以下边界:

let screenSize = UIScreen.main.bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height

如果您希望高度最大为 300(如您的示例所示),您可以使用如下计算变量:

let height : CGFloat = {
    if size.height > 300.0 {
        return 300.0
    } else {
        return size.height
    }
}()

如果您的应用在某个时间使用键盘,那么您可以获取键盘的高度并将该值应用为您的 DatePicker 的高度,否则您可以说

datePickerHeight = view.frame.height / 3

想要一个吸引人的身高。因此,如果您使用更大或更小的 phone,它会自行计算。

只需使用sizeToFit来计算自己的大小:

let size = datePicker.sizeThatFits(.zero)
print("height:", size.height) // height: 315.0