diff options
Diffstat (limited to 'ios')
| -rw-r--r-- | ios/MullvadVPN/AppButton.swift | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/ios/MullvadVPN/AppButton.swift b/ios/MullvadVPN/AppButton.swift index e0cd6eb7d9..0e12120e2e 100644 --- a/ios/MullvadVPN/AppButton.swift +++ b/ios/MullvadVPN/AppButton.swift @@ -62,24 +62,22 @@ private extension UIControl.State { commonInit() } - override func setTitle(_ title: String?, for state: UIControl.State) { - if let title = title { - setAttributedTitle(makeAttributedTitle(title, for: state), for: state) - } else { - setAttributedTitle(nil, for: state) + var titleString: String? { + didSet { + updateAttributedTitle(string: titleString) } } private func commonInit() { imageAlignment = .trailing contentHorizontalAlignment = .leading + } + private func updateAttributedTitle(string: String?) { let states: [UIControl.State] = [.normal, .highlighted, .disabled] states.forEach { (state) in - if let title = self.title(for: state) { - let attributedTitle = makeAttributedTitle(title, for: state) - self.setAttributedTitle(attributedTitle, for: state) - } + let attributedTitle = string.flatMap { makeAttributedTitle($0, for: state) } + self.setAttributedTitle(attributedTitle, for: state) } } |
