mastodon-ios/Mastodon/Scene/Account/View/BadgeButton.swift

47 lines
1.1 KiB
Swift
Raw Normal View History

//
// BadgeButton.swift
// Mastodon
//
// Created by Cirno MainasuK on 2021-9-16.
//
import UIKit
final class BadgeButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
_init()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
_init()
}
}
extension BadgeButton {
private func _init() {
titleLabel?.font = UIFontMetrics(forTextStyle: .caption1).scaledFont(for: .systemFont(ofSize: 13, weight: .medium))
setBackgroundColor(Asset.Colors.badgeBackground.color, for: .normal)
setTitleColor(.white, for: .normal)
contentEdgeInsets = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5)
}
override func layoutSubviews() {
super.layoutSubviews()
layer.masksToBounds = true
layer.cornerRadius = frame.height * 0.5
}
func setBadge(number: Int) {
let number = min(99, max(0, number))
setTitle("\(number)", for: .normal)
self.isHidden = number == 0
accessibilityLabel = L10n.A11y.Plural.Count.Unread.notification(number)
}
}