Подкласс UIButton меняет шрифт по щелчку мыши

0

Вопрос

Я вижу какое-то странное поведение от множества кнопок, которые я встроил в раскадровку. У меня есть 4 кнопки, каждая нестандартного типа TakesContainerButton и когда нажимается кнопка, она меняется на системный шрифт, но при нажатии другой кнопки предыдущая кнопка возвращается к нужному шрифту, не знаю, что здесь происходит

Кнопки также встроены в представление стека, если это имеет значение

Вот реализация, когда нажата одна из кнопок, где buttons представляет собой массив из 4 кнопок

@IBAction func filterPressed(_ sender: TakesContainerButton) {
        for button in buttons {
            button.unclick()
        }
        sender.click()
    }

вот пользовательский класс

class TakesContainerButton: UIButton {

        
        var bottom = UIView()
        
        func click(){
            self.setTitleColor(.darkGray, for: .normal)
            let xOffset:CGFloat = 10
            bottom = UIView(frame: CGRect(x: xOffset / 2, y: self.frame.height - 3, width: self.frame.width - xOffset, height: 3))
            bottom.layer.cornerRadius = 1.5
            bottom.backgroundColor = .darkGray
            self.addSubview(bottom)
        }
        
        func unclick(){
            bottom.removeFromSuperview()
            self.setTitleColor(UIColor(hex: "8B8B8B"), for: .normal)
        }
        
        override func awakeFromNib(){
            setFont()
        }
        
        func setFont(){
            self.titleLabel?.font = UIFont(name: "Lato-Bold", size: 12)
        }
    }
ios swift uibutton
2021-11-23 22:12:09
1

Лучший ответ

0

Есть ли какая-либо конкретная причина, по которой вы вызываете setFont() при каждом щелчке. Поскольку я вижу, что вы не меняете шрифт, вы должны установить этот шрифт во время загрузки представления и оставить шрифт как есть.

2021-11-23 22:56:54

Первоначально это было только в awakeFromNib, но у меня возникла эта проблема, поэтому я поместил ее как в щелчок, так и в щелчок
tHatpart

Вам не нужно каждый раз устанавливать шрифт.
Anubhav Giri

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

Популярное в этой категории

Популярные вопросы в этой категории