UIDatePicker iOS 14上带有TimeZones的Apple Bug?

问题描述

错误

更改月份滚动轮时,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月切换到月份则不会更改月份到九月(十月)。

Screenshot

其他相关详细信息:

  • 手动将计算机设置为NZ时区,并为选择器使用认时区,月份选择器可以正常工作

最初,我认为这与我们的应用程序用户能够设置用户个人资料时区有关,从而允许将他们的时区设置为与iOS设备上当前的语言环境/时区不同的内容。然后隔离到上面的游乐场仍然会出现相同的错误

-

还有其他人遇到这种情况吗?我是不是很傻吗?还是应该提交雷达?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)