UIButton subclasse é alterar o tipo de letra, clique no

0

Pergunta

Eu estou vendo algum comportamento estranho de um conjunto de botões que eu tenho construído no storyboard. Eu tenho 4 botões de cada tipo personalizado TakesContainerButton e quando um botão é clicado, ele muda para a fonte do sistema, mas quando o botão é clicado anteriormente botão retorna para a fonte desejada, não sei o que está acontecendo aqui

Os botões também são incorporados em uma pilha de vista, se o que importa

Aqui é a implementação quando um dos botões é pressionado onde buttons é uma matriz de 4 botões

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

aqui é a classe personalizada

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

Melhor resposta

0

Existe alguma razão específica que você está chamando setFont() em cada clique. Como eu sou capaz de ver que você não está alterando o tipo de letra, você deve definir esta fonte no momento de ler e deixar carregando o tipo de letra como ele é.

2021-11-23 22:56:54

Originalmente, foi somente em awakeFromNib, mas eu estava passando por esse problema assim que eu colocá-lo em ambos clique em e retire
tHatpart

Você não precisa definir tipo de letra de cada vez.
Anubhav Giri

Em outros idiomas

Esta página está em outros idiomas

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