UIButton sottoclasse è cambiare il tipo di carattere fare clic su

0

Domanda

Sto vedendo qualche comportamento strano da una serie di pulsanti che ho costruito in storyboard. Ho 4 pulsanti di ogni tipo personalizzato TakesContainerButton e quando viene cliccato un pulsante cambia il tipo di carattere di sistema, ma quando un altro pulsante viene cliccato in precedenza pulsante restituisce il tipo di carattere desiderato, non so cosa sta succedendo qui

I pulsanti sono anche incorporati in una pila di vista, se interessa

Ecco l'attuazione quando uno dei pulsanti viene premuto dove buttons un array di 4 pulsanti

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

qui è la classe personalizzata

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

Migliore risposta

0

C'è qualche motivo specifico che si chiama setFont() su ogni click. Come io sono in grado di vedere che non si modifica il tipo di carattere, è necessario impostare il tipo di carattere per il tempo di visualizzazione caricamento e lasciare il tipo di carattere come è.

2021-11-23 22:56:54

Originariamente era solo in awakeFromNib, ma ho sperimentato che il problema, così l'ho messo in entrambe selezionare e deselezionare
tHatpart

Non è necessario impostare il tipo di carattere in ogni momento.
Anubhav Giri

In altre lingue

Questa pagina è in altre lingue

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