45 lines
1.6 KiB
Swift
Raw Permalink Normal View History

import UIKit
class ActionButton: SetupButton {
var titleLabelFont = DynamicTextStyle.semiboldSubheadline
override func setup() {
super.setup()
contentEdgeInsets = UIEdgeInsets(top: layoutMargins.top + 1, left: layoutMargins.left + 7, bottom: layoutMargins.bottom + 1, right: layoutMargins.right + 7)
titleLabel?.numberOfLines = 0
updateFonts(with: traitCollection)
}
// MARK: - Dynamic Type
// Only applies new fonts if the content size category changes
override open func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
maybeUpdateFonts(with: traitCollection)
}
var contentSizeCategory: UIContentSizeCategory?
fileprivate func maybeUpdateFonts(with traitCollection: UITraitCollection) {
guard contentSizeCategory == nil || contentSizeCategory != traitCollection.wmf_preferredContentSizeCategory else {
return
}
contentSizeCategory = traitCollection.wmf_preferredContentSizeCategory
updateFonts(with: traitCollection)
}
// Override this method and call super
open func updateFonts(with traitCollection: UITraitCollection) {
titleLabel?.font = UIFont.wmf_font(titleLabelFont, compatibleWithTraitCollection: traitCollection)
}
}
extension ActionButton: Themeable {
func apply(theme: Theme) {
setTitleColor(theme.colors.link, for: .normal)
backgroundColor = theme.colors.cardButtonBackground
layer.cornerRadius = 5
}
}