如何消除UITextField键盘上的模糊

时间:2018-07-24 18:32:49

标签: ios swift uipickerview

我有一个显示国家列表的UIPickerView,并且我希望PickerView完全没有背景,也没有模糊效果,我设法使用此行代码删除了颜色:

picker.backgroundColor = UIColor.clear

但是,我无法消除模糊效果。可以删除它吗?

更新:

我刚刚意识到模糊效果来自UITextField而不是UIPickerView,但仍然找不到解决方法。

2 个答案:

答案 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
    }
}

结果: Simulator 5s on iOS 12