我有一个显示国家列表的UIPickerView
,并且我希望PickerView
完全没有背景,也没有模糊效果,我设法使用此行代码删除了颜色:
picker.backgroundColor = UIColor.clear
但是,我无法消除模糊效果。可以删除它吗?
更新:
我刚刚意识到模糊效果来自UITextField
而不是UIPickerView
,但仍然找不到解决方法。
答案 0 :(得分:0)
我找到了一个有效的技巧,而不是尝试消除键盘上的模糊,而是使用{{1}中的这一行更改了UIPickerView
的背景色以匹配UIView
的背景色}}函数:
numberOfRowsInComponent
如果您为picker.backgroundColor = UIColor.black
背景使用渐变色,则可以使用以下行:
UIView
但是您必须正确管理颜色以获得最佳效果。
如果您只有颜色的十六进制值,则可以使用this site轻松地将它们转换为picker.addGradientBackground(firstColor: UIColor.black, secondColor: UIColor.white)
附加说明:
在我的情况下,我为UIColor
的背景使用了渐变色,并且在显示键盘时可以移动UIView
的功能可以找到here,很幸运,更加容易,因为我只需要为UITextField
背景使用一种颜色,即UIPickerView
背景最底部的颜色。
HTH
答案 1 :(得分:0)
我遇到了同样的问题,并在自定义inputView下找到了一种用于隐藏模糊视图的解决方案。 您可以addObserver显示键盘通知,并隐藏模糊视图。 我还测试了iOS 9-> 12。 希望这会有所帮助。
NotificationCenter.default.addObserver(
self,
selector: #selector(self.keyboardWillShowNotification(_:)),
name: UIResponder.keyboardWillShowNotification,
object: nil
)
@objc func keyboardWillShowNotification(_ notification: Notification) {
guard let superView = inputView?.superview else { return }
for childView in superView.subviews where childView != inputView {
childView.isHidden = true
}
}