我在为UIPickerViews的背景分配自定义UIColor时得到了奇怪的颜色。我为textView和pickerViews创建了一个颜色,如下所示:
let myTextViewBackgroundColor = UIColor(red: 192.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 0.35)
我把它赋值为:
myTextView.backgroundColor = myTextViewBackgroundColor
keywordPicker.backgroundColor = myTextViewBackgroundColor
它看起来是这样的:
正如您所看到的,textView的颜色和picker的颜色不同,这种差异在设备上似乎比在此快照中更明显,但自定义颜色看起来很模糊,几乎像是与默认的灰色背景混合在一起。
如果我注解掉上面的pickerView颜色项,我会得到一个灰色背景:
如果我选择一个标准的UIColor,它看起来工作正常。UIColor. yellowColor在这个例子中。如果我选择白色,看起来也不错。
我在代码中创建pickerView,并将其分配给一个没有分配背景色的textField。
var keywordPicker : UIPickerView?
keywordPicker = UIPickerView()
keywordPicker?.delegate = self
keywordPicker?.dataSource = self
keywordsForItemTextField.inputView = keywordPicker
keywordPicker.backgroundColor = myTextViewBackgroundColor
值得一提的是,我创建了一个日期选择器,作为一个模态屏幕,它有自己的视图控制器。在这种情况下,选择器是在故事板上创建的。我仍然用代码分配背景颜色,选择器显示正确的颜色。
7条答案
按热度按时间mgdq6dx11#
tkanzakic的回答终于允许我更改UIDatePicker的背景颜色。
以下是Swift 4版本:
根据需要更改customBackgroundColor属性。
ttvkxqim2#
我敢肯定这是UIPickerView总是有银灰色过滤器的结果(注意当你把它设置为白色时它是如何变灰的?)
juud5qan3#
此响应不公开问题的原因,但我已包含我的解决方案,以防对其他人有所帮助。我为所选行显示创建了一个标签,并设置了标签的背景色。此标签颜色与自定义设置相同。
我给予Making App Pie和文章https://makeapppie.com/2014/10/21/swift-swift-formatting-a-uipickerview/,这是我的灵感来源。设置背景为白色:
我还添加了一个边框,使选择器看起来像我创建的textView:
设置标签:
unhi4e5o4#
在我们的例子中,我们有一个围绕
UIPickerView
的 Package 器来构建一个自定义的日期选择器。在设置UITextField
类的外观代理来使用inputView
的暗模式之后,如果第一个激活的textField
是一个带有自定义选择器的inputView
,我们会遇到同样的问题。但如果用户之前使用 * 普通键盘 * 与textField交互,如inputView
,则不会出现毛刺。在我们的特定案例中,将此技巧添加到 Package 器视图中可以解决以下问题:
我们还尝试在
willMoveToSuperview:
方法中设置颜色,但不起作用。ulydmbyx5#
写你的背景颜色改变代码内:-
q7solyqu6#
swift 4.2 /x代码10:
需要在主线程中设置背景颜色:
tzcvj98z7#
要删除UIPickerView上的
silvery-grey
覆盖层,您可以添加以下内容。