Como altero o tamanho da fonte de um UILabel no Swift?

246

label.font.pointSize é somente leitura, então não tenho certeza de como alterá-lo.

Jay
fonte
extensão UILabel {fonte func (tamanho: CGFloat) {self.font = UIFont (descritor: self.font.fontDescriptor, tamanho: tamanho)}}
Mohammad Razipour

Respostas:

589

Você pode fazer assim:

label.font = UIFont(name: label.font.fontName, size: 20)

Ou assim:

label.font = label.font.withSize(20)

Isso usará a mesma fonte. 20 pode ser do tamanho que você quiser, é claro.

Nota: A última opção substituirá o peso da fonte atual para, regularportanto, se você deseja preservar o peso da fonte, use a primeira opção.

Atualização Swift 3 :

label.font = label.font.withSize(20)

Atualização do Swift 4 :

label.font = label.font.withSize(20)

ou

label.font = UIFont(name:"fontname", size: 20.0)

e se você usar as fontes do sistema

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)
Connor
fonte
5
Isso de fato altera a propriedade pointSize da fonte. No entanto, o pointSize é redefinido imediatamente para 17.0 antes que o rótulo seja redesenhado. Portanto, há um pouco mais do que isso para realmente ver um tamanho de fonte diferente na tela.
Jay
1
Você está configurando a fonte para 17 em qualquer lugar? Storyboard?
Connor
1
Eu o executei no meu iPhone 5 e seu código funciona. Deve ser um bug no simulador.
Jay
Isso é interessante. Não é realmente surpresa ao ver outro bug embora. Fico feliz que está funcionando
Connor
5
Existe algo sério de errado com a documentação quando eu apenas pesquisei isso em vez de pesquisar apenas porque sabia que seria mais rápido.
Andrew Plummer
72

Eu acho que a melhor maneira de fazer isso - se manter a mesma fonte que já está atribuída ao UILabel seria:

(usando Swift)

label.font = label.font.fontWithSize(20)

(usando o Swift 3)

label.font = label.font.withSize(20)

Idealmente, eu definiria isso no viewDidLayoutSubviewsmétodo, pois ele não precisa ser alterado toda vez que a exibição aparecer.

mouselangelo
fonte
39
label.font = UIFont.systemFontOfSize(20)
ma11hew28
fonte
5
label.font = UIFont.systemFont (ofSize: 20) // no swift 3
Kang Byul 16/02/17
Esta solução não funcionará para fontes personalizadas. Ele sempre retornará a fonte do sistema.
Awais Fayyaz 25/02/19
24

Podemos definir a fonte conforme nossa exigência, como

label.font = UIFont(name: "Avenir-Light", size: 15.0)
label.font = UIFont.boldSystemFontOfSize(15)
label.font = UIFont.italicSystemFontOfSize(15)
label.font = UIFont.systemFontOfSize(17)
Gautam Sareriya
fonte
8

Se você quiser apenas alterar o tamanho da fonte, crio esta extensão

// Add extension

extension UILabel {
    func setSizeFont (sizeFont: Double) {
        self.font =  UIFont(name: self.font.fontName, size: sizeFont)!
        self.sizeToFit()
    }
}

// Use

myLabel.setSizeFont(60)
YannSteph
fonte
Isso me ajudou. Eu mudei o tamanho da fonte, o seu trabalho em rápida 4.
R. Mohan
6

Você pode dar assim também

labelName.font = UIFont(name: "systemFont", size: 30)
Santo
fonte
5

No Swift 3 novamente ...

myLabel.font = myLabel.font.withSize(18)
David DelMonte
fonte
4

Swift-3.1

label.font = UIFont.systemFont (ofSize: 12)

aqsa arshad
fonte
3

No swift3, suponha que seu nome UILable seja myLable e você queira alterar o tamanho da fonte, faça isso

myLable.font = UIFont.systemFont(ofSize: 10)
Dilip Jangid
fonte
2

Você pode usar uma extensão.

import UIKit

extension UILabel {

    func sizeFont(_ size: CGFloat) {
        self.font = self.font.withSize(size)
    }
}

Para usá-lo:

self.myLabel.fontSize(100)
lhmgrassi
fonte
2

A Apple continua mudando as coisas sem motivo: Swift 4+:

myLabel.font = UIFont.systemFont(ofSize: 16)

obrigado apple por desperdiçar tempo com as pessoas para descobrir quais métodos de "tamanho da fonte" eles precisam usar!

Mujtaba Mahmood
fonte
2

Programaticamente

label.font = UIFont.systemFont(ofSize: 20.0)
label.font = UIFont.boldSystemFont(ofSize: 20.0)
label.font = UIFont.italicSystemFont(ofSize: 20.0)

label.font = UIFont(name:"Helvetica Neue", size: 20.0)//Set your font name here

Através do story board

Para exibir várias linhas definidas como 0 (Zero), isso exibirá mais de uma linha na sua etiqueta.

Se você deseja exibir apenas 2 linhas, defina 2.

insira a descrição da imagem aqui

Se você deseja definir o tamanho mínimo da fonte para a etiqueta, clique em Autoshrink e selecione a opção Tamanho mínimo da fonte

Veja as telas abaixo

insira a descrição da imagem aqui

Defina aqui o tamanho mínimo da fonte

EX: 9 (nesta imagem)

Se o seu rótulo receber mais texto naquele momento, o texto do seu rótulo será reduzido até 9

insira a descrição da imagem aqui

iOS
fonte
2

Swift 4.2

myLabel.font = UIFont.systemFont(ofSize: 12)
Elshad Karimov
fonte
1

Usei fontWithSizepara um rótulo com fonte clara do sistema, mas ela volta para a fonte normal do sistema.

Se você deseja manter as características da fonte, é melhor incluir os descritores.

label.font = UIFont(descriptor: label.font.fontDescriptor(), size: 16.0)

Ikhsan Assaat
fonte
1

No Swift 3:

label = UIFont.systemFont(ofSize: 20)

e usar tamanhos predefinidos do sistema, por exemplo:

label = UIFont.systemFont(ofSize: UIFont.smallSystemFontSize)
Casey Murray
fonte
Eu acho que você esqueceu label.font
Ethan Parker
0

Swift 3

label.font.withSize(16)
mate
fonte
0

Swift 3.1

import UIKit

extension UILabel {
    var fontSize: CGFloat {
        get {
            return self.font.pointSize
        }
        set {
            self.font =  UIFont(name: self.font.fontName, size: newValue)!
            self.sizeToFit()
        }
    }
}
Adam Smaka
fonte
0

swift 4:

label.font = UIFont("your font name", size: 15)

Além disso, se você deseja definir a fonte do rótulo em todas as visualizações do seu projeto, tente o seguinte appDelegate>didFinishLaunch: UILabel.appearance().font = UIFont("your font name", size: 15)

ZahraAsgharzade
fonte
0

Caso você queira usar fonte personalizada com a opção negrito:

nameLabel.font = UIFont(name: "GillSans-Bold", size: 27)
Badr
fonte
-1

SWIFT 3.1

Label.font = Label.font.withSize (NewValue)

Ittai Oren
fonte
Isso não está correto e não foi escrito usando as convenções de nomenclatura do cacau.
Womble
-1

É muito fácil e conveniente alterar o tamanho da fonte do storyboard, e você pode ver instantaneamente o resultado da alteração.

Na verdade, também é muito fácil alterar outros atributos de fonte no storyboard, como estilo, família de fontes etc.

insira a descrição da imagem aqui

Fangming
fonte