问题描述
错误
更改月份滚动轮时,iOS 14上的 UIDatePicker
会出现带有特定时区的错误-不能正确更新月份值。
游乐场代码
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController {
let picker = UIDatePicker()
override func loadView() {
let view = UIView()
view.backgroundColor = .white
picker.preferredDatePickerStyle = .inline
picker.frame = CGRect(x: 0,y: 0,width: 320,height: 480)
picker.timeZone = TimeZone(identifier: "Pacific/Auckland")
picker.calendar = Calendar(identifier: .gregorian)
picker.date = Date()
picker.addTarget(self,action:#selector(MyViewController.datePickerValueChanged(_:)),for: .valueChanged)
view.addSubview(picker)
self.view = view
}
@objc func datePickerValueChanged(_ sender: UIDatePicker) {
print("value: \(picker.date)")
}
}
// Present the view controller in the Live View window
PlaygroundPage.current.liveView = MyViewController()
复制步骤
如果您未设置TZ,则它会按预期运行,显示在展开时选择的正确月份,并随着滚轮更改月份。
如果将TZ设置为"America/Denver"
-有效。哎呀,如果您将其设置为"BOO"
,则可以使用(我相信默认为当前设置)。
但是,如果您将TZ设置为"Pacific/Auckland"
(新西兰),很糟糕-扩展月份显示为9月,而从10月切换到月份则不会更改月份到九月(十月)。
其他相关详细信息:
- 手动将计算机设置为NZ时区,并为选择器使用默认时区,月份选择器可以正常工作。
最初,我认为这与我们的应用程序用户能够设置用户个人资料时区有关,从而允许将他们的时区设置为与iOS设备上当前的语言环境/时区不同的内容。然后隔离到上面的游乐场仍然会出现相同的错误。
-
还有其他人遇到这种情况吗?我是不是很傻吗?还是应该提交雷达?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)