UIButton sous-classe est en train de changer de police sur sur

0

La question

Je vois certains le comportement bizarre d'un tableau de boutons que j'ai construit dans le storyboard. J'ai 4 boutons de chaque type personnalisé TakesContainerButton et quand on clique sur un bouton il des changements dans le système de la police, mais quand le bouton est cliqué précédemment bouton revient à la police souhaitée, vous ne savez pas ce qui se passe ici

Les boutons sont également intégrées dans une pile de vue, si ce qui compte

Ici est la mise en œuvre lorsque l'un des boutons est pressé, où buttons est un tableau de 4 boutons

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

ici est la classe personnalisée

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

La meilleure réponse

0

Est-il une raison spécifique que vous appelez setFont() sur chaque clic. Comme je suis capable de voir que vous n'êtes pas la modification de la police, vous devez définir cette police à l'époque de vue de chargement et de laisser la police comme il est.

2021-11-23 22:56:54

A l'origine, Il était seulement dans awakeFromNib, mais j'ai fait l'expérience de cette question donc je l'ai mis à la fois sur et décochez
tHatpart

Vous n'avez pas besoin de définir la police à chaque fois.
Anubhav Giri

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................