UIButton podtrieda je zmena písma, kliknite na

0

Otázka

Ja som videl niektoré podivné správanie z poľa tlačidlá postavil som do deja. Mám 4 tlačidlá každý vlastný typ TakesContainerButton a keď tlačidlo je klikli, že zmeny systému písma, ale keď iný tlačidlo klikli predtým tlačidlo vráti na požadované písmo, nie si istý, čo sa deje tu

Tlačidlá sú tiež vložené do zásobníka zobraziť, ak veciach, ktoré

Tu je vykonávanie keď jedno z tlačidiel je stlačené, kde buttons je rad 4 tlačidlá

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

tu je vlastná trieda

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

Najlepšiu odpoveď

0

Je tam nejaký konkrétny dôvod, ktorý voláte setFont() na každé kliknutie. Ako som schopný vidieť, že nie ste zmena písma, mali by ste nastaviť toto písmo v čase zobrazenie zaťaženia a nechať písma, ako to je.

2021-11-23 22:56:54

Pôvodne To bol len v awakeFromNib, ale bol som zažíva tento problém, tak som to dal do oboch kliknite na tlačidlo a unclick
tHatpart

Nemusíte nastaviť font každý čas.
Anubhav Giri

V iných jazykoch

Táto stránka je v iných jazykoch

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