iOS8(自定义键盘)如何让背景透明?

时间:2014-08-28 06:27:31

标签: objective-c swift ios8

我正在使用适用于iOS 8的自定义键盘。默认情况下,它具有灰色背景色。

如果要为其视图背景设置一些颜色 - 一切正常,但我怎样才能使其透明? (UIColor.clearColor()无效)

3 个答案:

答案 0 :(得分:0)

您是否使用xib文件加载视图? 或者你是否以编程方式完成了所有工作?

我使用xib文件,我将故事中的背景颜色设置为默认的空白。 然后在viewDidLoad之前我将它设置为clearcolor,这是有效的。我的背景与默认键盘相同。

答案 1 :(得分:0)

我还没有用键盘试过,但是你可以设置背景PNG吗?如果是这样,请创建一个明确的1px xpp PNG(保持PNG中的透明度)。将其用作背景图像。似乎SDK中存在导致此问题的错误。

答案 2 :(得分:0)

很遗憾,您无法将键盘的背景显示为.clear(透明),但可以将其更改为其他颜色。进一步说明:

请记住,在使用笔尖时,有2个视图-笔尖的视图和ViewController的视图。您可以将笔尖的背景更改为.clear,但这只是显示ViewController的视图(在本例中为KeyboardViewController

override func viewDidLoad() {
    super.viewDidLoad()
    let keyboardNib = UINib(nibName: "KeyboardView", bundle: nil)
    let keyboardView = keyboardNib.instantiate(withOwner: self, options: nil) [0] as? UIView
    view.backgroundColor = .red
    keyboardView.backgroundColor = .clear
}

当您希望笔尖的视图与ViewController的视图匹配时(keyboardView.backgroundColor = view.backgroundColor也是一样),上面的方法才真正有用。

如果您只想更改笔尖的颜色,则可以将笔尖的背景颜色设置为所需的任何颜色,因为它位于keyboardViewController视图的前面。

override func viewDidLoad() {
    super.viewDidLoad()
    let keyboardNib = UINib(nibName: "KeyboardView", bundle: nil)
    let keyboardView = keyboardNib.instantiate(withOwner: self, options: nil) [0] as? UIView
    keyboardView.backgroundColor = .red
}