為了方便操作夺颤,在UIAlertAction上直接添加了UIDatePicker控件,這樣彈出日期控件直接選擇胁勺,方便快捷, 在升級了手機(jī)系統(tǒng)(iOS14)后世澜,發(fā)現(xiàn)樣式變了!
下載.jpeg
這是正常的樣子:
@objc func startAction(sender: UITapGestureRecognizer) {
let message = "\n\n\n\n\n\n"
let alert = UIAlertController(title: "開始時(shí)間", message: message, preferredStyle: UIAlertController.Style.actionSheet)
alert.isModalInPopover = true
let datePicker = UIDatePicker(frame: CGRect(x: 10, y: 20, width: screenWidth() - 40, height: 160))
datePicker.datePickerMode = .date
datePicker.addTarget(self, action: #selector(startDatePickerValueChanged(datePicker:)), for: .valueChanged)
alert.view.addSubview(datePicker)
let okAction = UIAlertAction(title: "確定", style: .default, handler: {
(alert:UIAlertAction!) -> Void in
//TODO:
}
})
alert.addAction(okAction)
let cancelAction = UIAlertAction(title: "取消", style: .destructive, handler: nil)
alert.addAction(cancelAction)
self.parent?.present(alert, animated: true, completion: nil)
}
截屏2020-09-29 下午6.50.54.png
這是升級了手機(jī)系統(tǒng)(iOS14)后的樣子:
截屏2020-09-29 下午6.35.54.png
很顯然這在新的系統(tǒng)上的變了樣子姻几,通過在查找及測試宜狐,最后發(fā)現(xiàn)確實(shí)是UIDatePickerStyle在不同的系統(tǒng)(iOS 13.4以上)下造成的
@available(iOS 13.4, *)
public enum UIDatePickerStyle : Int {
/// Automatically pick the best style available for the current platform & mode.
case automatic = 0
/// Use the wheels (UIPickerView) style. Editing occurs inline.
case wheels = 1
/// Use a compact style for the date picker. Editing occurs in an overlay.
case compact = 2
/// Use a style for the date picker that allows editing in place.
@available(iOS 14.0, *)
case inline = 3
}
下載 (1).jpeg
End:給UIDatePicker添加UIDatePickerStyle屬性值就??
---
if #available(iOS 13.4, *) {
datePicker.preferredDatePickerStyle = .wheels
}
---
IMG_5455.jpg
關(guān)于UIDatePicker的其他樣式和屬性势告,自己可以試試蛇捌,比如:
datePicker.preferredDatePickerStyle = .inline
截屏2020-09-29 下午7.09.12.png
datePicker.preferredDatePickerStyle = . compact
截屏2020-09-29 下午7.09.23.png
images.jpeg