如何为 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)
我认为您混淆了 Bounds
和 Frame
。 Frame
是描述父视图的矩形。 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
如何在不同 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)
我认为您混淆了 Bounds
和 Frame
。 Frame
是描述父视图的矩形。 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