【问题标题】:UIDatePicker for iOS13 and above and below iOS13iOS13及以上及以下iOS13的UIDatePicker
【发布时间】:2021-08-28 22:53:00
【问题描述】:

支持 iOS14 实现的 UIDatePicker,但也需要支持 iOS 12。如何也为 iOS12 实现相同的功能。以下是我的代码:

datePicker = UIDatePicker.init()
        datePicker.backgroundColor = UIColor.white
    datePicker.maximumDate = Date()
        datePicker.autoresizingMask = .flexibleWidth
        datePicker.datePickerMode = .date
    if #available(iOS 13.4, *) {
        datePicker.preferredDatePickerStyle = .compact
    } else {
        // Fallback on earlier versions
        
    }
        datePicker.addTarget(self, action: #selector(self.dateChanged(_:)), for: .valueChanged)

iOS12 中的错误:

preferredDatePickerStyle' is only available in iOS 13.4 or newer

在 iOS 13 以下的检查下要实现什么?

【问题讨论】:

  • iOS 13以下无需指定,它将采用默认的滚轮样式选择器。
  • @RajaKishan 不,它会抛出错误“preferredDatePickerStyle' is only available in iOS 13.4 or later”

标签: ios swift uidatepicker ios12


【解决方案1】:

iOS 13 下可以使用自动。

if #available(iOS 13.4, *) {
        datePicker.preferredDatePickerStyle = .compact
    } else {
        // Fallback on earlier versions
        datePicker.preferredDatePickerStyle = .automatic
    }

【讨论】:

  • 同样的错误:preferredDatePickerStyle' 仅适用于 iOS 13.4 或更高版本
【解决方案2】:

< iOS 13.4 版本无需指定任何内容。 UIDatePicker 将像以前在旧版本中一样工作,而无需指定此值。

如果您想在新设备iOS 14 or above 上强制使用旧的iOS 12 样式,您可以使用 -

if #available(iOS 13.4, *) {
    datePicker.preferredDatePickerStyle = .wheels
}

【讨论】:

  • 您无法在 iOS 12 上获得仅允许 iOS 13.4 或更高版本的行为。您需要决定这两个中的一个 - a) 让系统根据 iOS 版本显示不同的行为 - 在此您根本不需要指定任何内容 - 这是由系统自动驱动的。或 b) 在所有手机上强制使用旧的 iOS 12 行为(轮子)以保持一致性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-26
相关资源
最近更新 更多