有没有办法以编程方式更改WatchKit WKInterfaceButton标题的颜色?我知道我可以在故事板中更改它,但我需要在代码中更改它。
每Apple documentation它没有说明是否允许这样的行动。我确实尝试过查看WKInterfaceButton的所有可用方法,并且有一个用于setBackgroundColor但不用于标题颜色。我错过了什么?
答案 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作为其内容,并为文本插入标签。
然后你只需在标签
上设置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按钮属性)