metatext/Views/UIKit/FollowsYouLabel.swift
2021-01-31 10:43:37 -08:00

49 lines
1.3 KiB
Swift

// Copyright © 2021 Metabolist. All rights reserved.
import UIKit
final class FollowsYouLabel: UILabel {
override init(frame: CGRect) {
super.init(frame: frame)
initialSetup()
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
layer.cornerRadius = inset
invalidateIntrinsicContentSize()
}
override func drawText(in rect: CGRect) {
super.drawText(in: rect.inset(by: .init(top: 0, left: inset, bottom: 0, right: inset)))
}
override var intrinsicContentSize: CGSize {
var size = super.intrinsicContentSize
size.width += inset * 2
return size
}
}
private extension FollowsYouLabel {
var inset: CGFloat { bounds.height / 2 }
func initialSetup() {
backgroundColor = .tertiarySystemBackground
textColor = .secondaryLabel
font = UIFont.preferredFont(forTextStyle: .footnote)
adjustsFontForContentSizeCategory = true
setContentHuggingPriority(.required, for: .horizontal)
setContentCompressionResistancePriority(.required, for: .horizontal)
clipsToBounds = true
}
}