Como posso obter o tamanho e o nome da fonte de um UILabel?
105
Eu tenho um UILabel que defino um tamanho de fonte e um nome de fonte com Interface Builder. Agora tenho que ler os valores de ambos no meu ViewController.
Vincule o rótulo a este IBOutlet nos pontos de venda "Proprietário do arquivo" no Interface Builder. Se não estiver usando ARC, certifique-se de liberá-lo em -dealloc
Não funciona. Posso escrever texto nele, mas o fontName e pointSize são nulos.
Tim
Você quer dizer que pode alterar programaticamente o texto da etiqueta, mas não pode acessar fontName e pointSize? Editei a resposta acima para incluir self.label, em vez de apenas rótulo, já que não mencionei a criação de uma variável de instância para rótulo.
Ned
Além disso, certifique-se de conectar o rótulo no Interface Builder com o IBOutlet que você fez no File's Owner (o controlador de visualização).
Ned
2
Ah, esqueci a conexão do IB com o Dono do Arquivo.
Tim
29
Rápido:
var currentFontSize = button.titleLabel?.font.pointSize
O valor de tamanho de pontos não é o tamanho da fonte usado na propriedade de tamanho UIFont. Digamos que se você definir o tamanho da fonte do construtor de interface para 14 e imprimir o pointSize, terá apenas 11.
Parece estar funcionando agora. Se eu definir o tamanho da fonte de um rótulo no construtor de interface / editor de storyboard para 17 ... myLabel.font.pointSizeretorna 17.
Derek Soike
1
você tem que anexá-lo a um IBOutlet UILabel, e então, label.font ...
Respostas:
Adicione uma propriedade ao arquivo .h do controlador de visualização:
Vincule o rótulo a este IBOutlet nos pontos de venda "Proprietário do arquivo" no Interface Builder. Se não estiver usando ARC, certifique-se de liberá-lo em -dealloc
Então, para obter o nome e o tamanho da fonte, tudo o que você precisa é
fonte
Rápido:
fonte
O valor de tamanho de pontos não é o tamanho da fonte usado na propriedade de tamanho UIFont. Digamos que se você definir o tamanho da fonte do construtor de interface para 14 e imprimir o pointSize, terá apenas 11.
fonte
myLabel.font.pointSize
retorna 17.você tem que anexá-lo a um IBOutlet UILabel, e então, label.font ...
fonte