Podklasa UIButton zmienia czcionkę na kliknięcie myszy

0

Pytanie

Widzę jakieś dziwne zachowanie od wielu przycisków, które wykorzystał w serii ujęć. Mam 4 przyciski, każdy niestandardowego typu TakesContainerButton i gdy zostanie naciśnięty przycisk zmienia się na czcionkę systemową, ale po naciśnięciu innego przycisku poprzednia przycisk powraca do wybranej czcionki, nie wiem, co tu się dzieje

Przyciski również są wbudowane w widoku stosu, jeśli to ma znaczenie

Oto realizacja, gdy jest naciśnięty jeden z przycisków, gdzie buttons jest tablica z 4 przycisków

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

oto klasę

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

Najlepsza odpowiedź

0

Masz jakiś konkretny powód, dla którego dzwonisz setFont() przy każdym kliknięciu. Ponieważ widzę, że nie zmienia czcionkę, należy zainstalować tę czcionkę podczas pobierania prezentacji i zostawić czcionki.

2021-11-23 22:56:54

Początkowo to było tylko w awakeFromNib, ale u mnie wystąpił ten problem, dlatego umieściłem ją w klik i klik
tHatpart

Nie trzeba za każdym razem instalować czcionki.
Anubhav Giri

W innych językach

Ta strona jest w innych językach

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