UIButton subclasa este schimbarea fontului de pe click

0

Problema

Am văzut un comportament ciudat dintr-o serie de butoane am construit în rezumat. Am 4 butoane, fiecare de tip personalizat TakesContainerButton și atunci când un buton este apasat se schimbă la fontul de sistem, dar atunci când un alt buton este apasat butonul anterior revine la fontul dorit, nu sunt sigur ce se întâmplă aici

Butoanele sunt, de asemenea, încorporat într-o stivă de vedere, dacă asta contează

Aici este punerea în aplicare atunci când unul dintre butoane este apăsat în cazul în care buttons este o matrice de 4 butoane

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

aici este clasa personalizat

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

Cel mai bun răspuns

0

Există vreun motiv anume că sunteți de asteptare setFont() pe fiecare click. Ca eu sunt capabil să văd că nu se schimbă fontul tu ar trebui să stabilească acest font în momentul de vedere încărcare și se lasă font ca este.

2021-11-23 22:56:54

Inițial Acesta a fost doar în awakeFromNib, dar am fost confrunta cu aceasta problema asa ca am pus in ambele faceți clic și eliberați butonul mouse-ului
tHatpart

Nu aveți nevoie pentru a seta fontul de fiecare dată.
Anubhav Giri

În alte limbi

Această pagină este în alte limbi

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