Я создал один пользовательский UIButton
со значком, и я установил, что когда номер значка равен 0, красный кружок должен исчезнуть.
open class ButtonWithBadge: UIButton {
open func addBadgeIcon(badgeNumber: Int, color: UIColor) {
let sizeThatFits = self.sizeThatFits(CGSize(width: bounds.width, height: CGFloat.greatestFiniteMagnitude))
let badgeCount = UILabel(frame: CGRect(x: sizeThatFits.width - 15, y: -07, width: 18, height: 18))
badgeCount.layer.borderColor = UIColor.clear.cgColor
badgeCount.layer.borderWidth = 2
badgeCount.layer.cornerRadius = badgeCount.bounds.size.height / 2
badgeCount.textAlignment = .center
badgeCount.layer.masksToBounds = true
badgeCount.textColor = .white
badgeCount.font = badgeCount.font.withSize(9)
badgeCount.backgroundColor = badgeNumber == 0 ? .clear : color
badgeCount.text = badgeNumber == 0 ? "" : "\(badgeNumber)"
addSubview(badgeCount)
}
Я вызываю эту функцию, чтобы изменить номер значка. Эта функция отлично работает, когда число уменьшается, но когда я передаю ей 0, она не может сделать clear
фонового значка и заменить его текст на " "
. Он работает только тогда, когда вы снова открываете страницу, а затем, когда номер значка равен 0, он не добавляет это представление количества значков. Я должен как-то перезагрузить кнопку, когда ее номер равен 0, чтобы удалить этот значок. может ли кто-нибудь помочь мне в этом. Спасибо