我正在开发一个iOS 8的自定义键盘。默认情况下,它有灰色的背景颜色。
如果您为其视图背景设置了一些颜色 - 一切都很好,但是如何使其透明?(UIColor.clearColor()
无效)
我正在开发一个iOS 8的自定义键盘。默认情况下,它有灰色的背景颜色。
如果您为其视图背景设置了一些颜色 - 一切都很好,但是如何使其透明?(UIColor.clearColor()
无效)
你是使用 xib 文件加载视图吗? 还是完全通过编程实现的?
我使用的是 xib 文件,我在故事板中将背景颜色设置为默认的空白色。 然后在 viewDidLoad 之前将其设置为 clearcolor,它可以正常工作。我得到了与默认键盘相同的背景。
我没有用键盘尝试过,但是你能设置背景PNG吗?如果可以,创建一个透明的1像素x1像素的PNG(保留PNG中的透明度),用它作为你的背景图像。看起来SDK目前存在导致这个问题的bug。
很遗憾,您无法将键盘的背景显示为.clear
(透明),但您可以将其更改为其他颜色。 更多信息:
请记住,在使用nib时,有两个视图- nib的视图和ViewController
的视图。 您可以将nib的背景更改为.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
}
上述内容的真正方便之处在于当您希望 nib 的视图与 ViewController 的视图匹配时(keyboardView.backgroundColor = view.backgroundColor
也可以实现相同效果)。
如果您只想更改 nib 的颜色,您可以将 nib 的背景颜色设置为任何您想要的颜色,因为它在 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
}