Estou tentando alterar a fonte de um UIButton usando Swift ...
myButton.font = UIFont(name: "...", 10)
No entanto, .font
está obsoleto e não sei como alterar a fonte de outra forma.
Alguma sugestão?
Estou tentando alterar a fonte de um UIButton usando Swift ...
myButton.font = UIFont(name: "...", 10)
No entanto, .font
está obsoleto e não sei como alterar a fonte de outra forma.
Alguma sugestão?
Respostas:
Use em titleLabel
vez disso. A font
propriedade está obsoleta no iOS 3.0. Também não funciona no Objective-C. titleLabel
é o rótulo usado para exibir o título UIButton
.
myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)
No entanto, ao definir o texto do título, você deve usar apenas setTitle:forControlState:
. Não use titleLabel
para definir nenhum texto para o título diretamente.
titleLabel
é uma propriedade opcional.Obrigado anteriormente na versão beta, não era.
myButton.titleLabel?.font = ...
vai funcionar, pois se titleLabel é nulo será apenas um não-op
Para o Swift 3.0 :
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
onde "boldSystemFont" e "16" podem ser substituídos por sua fonte e tamanho personalizados.
btn.titleLabel?.font = .systemFont(ofSize: 12)
Você não precisa forçar a desembrulhar o titleLabel para defini-lo.
myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)
Como você não está usando o titleLabel aqui, é possível usá-lo opcionalmente e, se for nulo, será apenas um não operacional.
Também adicionarei, como outras pessoas estão dizendo, que a propriedade da fonte foi descontinuada e certifique-se de usá-la setTitle:forControlState:
ao definir o texto do título.
A partir da documentação :
A fonte usada para exibir o texto no botão. ( Descontinuado no iOS 3.0 . Use a
font
propriedade dotitleLabel
lugar.)
Se você estiver com problemas de tamanho da fonte (sua fonte não está respondendo a alterações de tamanho) ...
@codester tem o código certo:
myButton.titleLabel!.font = UIFont(name: YourfontName, size: 20)
No entanto, o tamanho da minha fonte não estava mudando. Acontece que eu pedi uma fonte que não existia ("HelveticaNeue-Regular"). Não estava causando um acidente, mas parecia estar apenas ignorando a declaração da fonte por causa disso. Depois que eu mudei a fonte para algo que existe, as alterações para "size: x" renderizaram.
podemos usar diferentes tipos de fontes do sistema, como abaixo
myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
myButton.titleLabel?.font = UIFont.italicSystemFont(ofSize:UIFont.smallSystemFontSize)
myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: UIFont.buttonFontSize)
e sua fonte personalizada como abaixo
myButton.titleLabel?.font = UIFont(name: "Helvetica", size:12)
Você deve passar pela titleLabel
propriedade.
button.titleLabel.font
A font
propriedade foi descontinuada desde o iOS 3.0.
Se você estiver definindo AttributedString como UIButton, poderá fazer o seguinte.
let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)