设置WKInterfaceButton标题颜色 - WatchKit

时间:2015-03-20 18:30:09

标签: ios watchkit

有没有办法以编程方式更改WatchKit WKInterfaceButton标题的颜色?我知道我可以在故事板中更改它,但我需要在代码中更改它。

Apple documentation它没有说明是否允许这样的行动。我确实尝试过查看WKInterfaceButton的所有可用方法,并且有一个用于setBackgroundColor但不用于标题颜色。我错过了什么?

7 个答案:

答案 0 :(得分:5)

我没有尝试过这个,但看起来您可以使用setAttributedTitle:,其中一个属性也可以NSForegroundColorAttributeName,并且您想要设置标题的颜色。

答案 1 :(得分:5)

感谢ColdLogic指出我正确的方向。它有点复杂的方式来改变标题颜色,但它有效。

NSString *titleStr = @"Next";
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:titleStr];
[attString setAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]} range:NSMakeRange(0, attString.string.length)];
//set color
[customBtn setAttributedTitle:attString];

答案 2 :(得分:3)

另一种选择是设置按钮以使用WKInterfaceGroup作为其内容,并为文本插入标签。

enter image description here

然后你只需在标签

上设置TextTolor
[[self myLabel] setTextColor:textColor];

答案 3 :(得分:3)

像@SamB的答案一样使用Swift:

let attString = NSMutableAttributedString(string: "NewTitle")
attString.setAttributes([NSForegroundColorAttributeName: UIColor.redColor()], range: NSMakeRange(0, attString.length))              
self.button.setAttributedTitle(attString)

我希望这对你有所帮助。

答案 4 :(得分:2)

对于Swift用户,准备使用 WKInterfaceButton 的扩展名:

extension WKInterfaceButton {
func setTitleWithColor(title: String, color: UIColor) {
    let attString = NSMutableAttributedString(string: title)
    attString.setAttributes([NSForegroundColorAttributeName: color], range: NSMakeRange(0, attString.length))
    self.setAttributedTitle(attString)
}

答案 5 :(得分:0)

快捷键4

let attString = NSMutableAttributedString(string: "NewTitle")
attString.setAttributes([NSAttributedStringKey.foregroundColor: UIColor.red], range: NSMakeRange(0, attString.length))
self.leftButton.setAttributedTitle(attString)

答案 6 :(得分:-1)

根据文档,您可以在故事板中设置标题颜色:https://developer.apple.com/library/prerelease/ios/documentation/WatchKit/Reference/WKInterfaceButton_class/(表1 - WatchKit按钮属性)