gpt4 book ai didi

ios - 更改自定义 UIButton 的 TitleColor (iOS 8 + swift)

转载 作者:行者123 更新时间:2023-11-28 08:53:45 24 4
gpt4 key购买 nike

我有这个自定义 UIButton 类,但我无法更改不同状态(正常、禁用、突出显示)的 titleColor。我已经尝试使用 titleColorForState 来更改它,但没有效果。唯一似乎有效的是 tintColor,但在不同的状态下,颜色只是淡化并且不会改变。

这是我的自定义类的代码:

import UIKit

class UIDefaultButton: UIButton {

var normalBackground: UIColor { get { return UIColor.hrColors().whiteColor() } }
var highlightedBackground: UIColor { get { return UIColor.hrColors().lightGreyColor() } }
var disabledBackground: UIColor { get { return UIColor.hrColors().lightGreyColor() } }

var normalTextColor: UIColor { get { return UIColor.hrColors().darkGreyColor() } }
var highlightedTextColor: UIColor { get { return UIColor.hrColors().darkGreyColor()} }
var disabledTextColor: UIColor { get { return UIColor.hrColors().greyColor() } }

var cornerRadius: CGFloat { get { return 5.0 } }
var borderWidth: CGFloat { get { return 1.0 } }
var borderColor: UIColor { get { return UIColor.hrColors().greyColor() } }
var hasBorder: Bool { get { return true } }

override var highlighted: Bool {
didSet {
switch (highlighted) {
case true:
backgroundColor = highlightedBackground
case false:
backgroundColor = normalBackground
}
}
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)

self.layer.cornerRadius = cornerRadius

if (self.hasBorder) {
self.layer.borderColor = borderColor.CGColor
self.layer.borderWidth = borderWidth
}

self.tintColor = normalTextColor
self.backgroundColor = normalBackground
}

override func titleColorForState(state: UIControlState) -> UIColor? {
switch (state) {
case UIControlState.Normal:
return normalTextColor
case UIControlState.Highlighted:
return highlightedTextColor
case UIControlState.Disabled:
return disabledTextColor
default:
return normalTextColor
}
}

}

注意:UIColor.hrColor() 是我自己对自定义颜色的扩展

知道为什么它不起作用吗?

最佳答案

尝试这样的事情

yourButton.setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.hrColor()], forState: .Normal)

确保按钮有一个 IBOutlet 并将此代码放入 viewDidLoad()

如果这对您有用,请给+1!

关于ios - 更改自定义 UIButton 的 TitleColor (iOS 8 + swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33621478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com