UIButton podtřídy se mění písmo na klepněte na tlačítko

0

Otázka

Já jsem viděl nějaké divné chování od pole tlačítek postavil jsem v storyboard. Mám 4 tlačítka, každé vlastní typ TakesContainerButton a když kliknete na tlačítko to změny systémové písmo, ale když jiný kliknete na tlačítko dříve, tlačítko se vrátí do požadované písmo, není si jistý, co se tady děje

Tlačítka jsou také vložené v zásobníku, výhled, jestli na tom záleží

Zde je provedení, kdy jedno z tlačítek stisknuto, kde buttons je řada 4 tlačítek

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

zde je vlastní třídy

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

Nejlepší odpověď

0

Je tu nějaký konkrétní důvod, že se volá setFont() na každé kliknutí. Jak jsem schopen vidět, že nejste změna písma, měli byste nastavit toto písmo při prohlížení zatížení a nechat písmo, jak to je.

2021-11-23 22:56:54

Původně To bylo jen v awakeFromNib, ale byl jsem zažívá to problém tak jsem to dal v obou klepněte na tlačítko a unclick
tHatpart

Nemusíte nastavit font pokaždé.
Anubhav Giri

V jiných jazycích

Tato stránka je v jiných jazycích

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