I create next subclass:
import UIKit
class Button: UIButton {
override func updateConfiguration() {
var config = configuration ?? UIButton.Configuration.plain()
let color = config.attributedTitle?.foregroundColor
switch state {
case .normal:
config.attributedTitle?.foregroundColor = color.withAlphaComponent(1)
case .highlighted:
config.attributedTitle?.foregroundColor = color.withAlphaComponent(0.5)
default:
break
}
configuration = config
}
}
I this class I want to get foregroundColor from attributedTittle(AttributedString class) to assign it later with alphaComponent to different button states, BUT I can't get any attribute from attributedString(or AttributedContainer) in updateConfiguration method.
In my example property "color" is always nil (actually all other attribute are nil if I try get them) and the return type of "color" is:
AttributeScopes.SwiftUIAttributes.ForegroundColorAttribute.Value?
And I get this error when try to assign color back to attributedString:
Value of type 'AttributeScopes.SwiftUIAttributes.ForegroundColorAttribute.Value?' (aka 'Optional<Color>') has no member 'withAlphaComponent'
So why I can't get any attributes from AttributedString here?