【问题标题】:UIDatePicker background color changes on second viewDidLoadUIDatePicker 背景颜色在第二个 viewDidLoad 上发生变化
【发布时间】:2016-08-31 08:54:56
【问题描述】:

正如标题所述,我在使用 UIDatePicker 组件时遇到问题。 我正在更改它的背景颜色,这在第一次打开 ViewController 时不起作用。如果我将其关闭,然后再次返回到该 ViewController,则代码将起作用。这是我的代码中的一个 sn-p:

var datePickerView:UIDatePicker!

// in viewDidLoad
datePickerView = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.DateAndTime
datePickerView.tintColor = UIColor.orangeColor()
datePickerView.backgroundColor = UIColor.blackColor()
dateTextField.inputView = datePickerView
datePickerView.addTarget(self, action: #selector(ViewController.datePickerValueChanged(_:)), forControlEvents: UIControlEvents.ValueChanged)

有什么想法可能是错的吗?

【问题讨论】:

  • close it and then return to that ViewController again 是什么意思?关闭应用?
  • @Dravidian 我所说的是解除 ViewController。
  • 好的..只需在主线程中添加您的选择器代码,如 dispatch_async(dispathch_get_mainQueue ....{}
  • @Gagan_iOS,试过了,没用。
  • 您在 View 上的哪里添加了您的 pickerview?

标签: ios swift uitextfield uidatepicker


【解决方案1】:

viewDidLoad 是你必须做任何事情一次的范围。

viewWillAppear 每次视图出现时都会被调用。

尝试将它放在viewWillAppear 如果即使这样也不能解决您的问题,请尝试使用 dispatch_async 异步调用您的代码

【讨论】:

    【解决方案2】:

    奇怪。正在玩代码,发现设置 UIDatePickers locale 导致 UIDatePicker 无法正确显示。

    datePickerView.locale = NSLocale(localeIdentifier: "en")
    

    仍然不知道为什么。如果您有任何建议,请随时在下面发表评论,同时我会找到解决此问题的方法。

    【讨论】:

    • 同样的问题,你的修复没有帮助:(
    • @ArtemZ.你试过删除你设置区域设置的行吗?这解决了我的问题。
    • 我没有设置语言环境:(
    猜你喜欢
    • 2013-03-04
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2019-01-05
    • 2018-04-04
    • 2021-02-13
    • 1970-01-01
    • 2017-04-14
    相关资源
    最近更新 更多