我的UIButton
应用内有一个TVos
我要更改backgroundColor
以及titleLabel的字体。
当按钮聚焦时,文字,字体和backgroundColor
应该相同,但应该显示它变为focused view
。
我在ViewDidLoad
:
orderButton.titleLabel?.font = UIFont(name: "RobotoCondensed-Regular", size: 40)
orderButton.setBackgroundImage(getImageWithColor(UIColor(rgba: "#1db5b5")), forState: [.Focused, .Normal])
orderButton.setTitleColor(UIColor.whiteColor(), forState: [.Focused, .Normal])
问题
当我的视图加载时,我的按钮仍然具有默认的灰色。当它聚焦时,它会获得我在ViewDidLoad
内设置的颜色。
对此有何帮助?
答案 0 :(得分:2)
您必须单独指定两个状态,如此
orderButton.setBackgroundImage(getImageWithColor(UIColor(rgba: "#1db5b5")), forState: .Focused)
orderButton.setBackgroundImage(getImageWithColor(UIColor(rgba: "#1db5b5")), forState: .Normal)
正如文件所说
func setBackgroundImage(_ image: UIImage?,forState state: UIControlState)
我们只有一个州时间指定
答案 1 :(得分:0)
您可以覆盖didUpdateFocusInContext方法来实现此目的。 我们假设您的按钮标记设置为1.现在您可以执行以下操作:
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
if let nextFocusedView = context.nextFocusedView {
if button.tag == 1 {
// Change the font and background color here for Focused state
}
}
if let previousFocusView = context.previouslyFocusedView {
if button.tag == 1 {
// Change the font and background color here for Non-Focused state
}
}