Как изменить шрифт UILabel в swift без изменения размера шрифта?

13

Я программно создал ярлык, который я установил для параметра adjustToFitWidth значение true. Теперь я хочу изменить его шрифт, но я не могу этого сделать, не делая размер шрифта метки постоянным. Кто-нибудь знает, как я могу изменить только шрифт, а не размер шрифта UILabel в swift?

  • 3
    То, что вы не измените размер шрифта, не обязательно означает, что два разных шрифта с одинаковым текстом и одинаковым размером займут одно и то же место.
Теги:
fonts
labels

3 ответа

29

Почему бы не получить размер шрифта и указать новый шрифт с этим значением?

let fontSize = self.label.font.pointSize;
self.label.font = UIFont(name: "HelveticaNeue", size: fontSize)
4

Вы можете сделать это следующим образом:

label.font = UIFont(name: "Arial", size: label.font.pointSize)

Это будет использовать тот же размер шрифта, "Arial" может быть любой семьей, которую вы хотите выбрать.

1

Улучшенный ответ.

UILabel Subclassing: добавьте пустой swift файл и назовите его. e.g..EZLabel. Добавьте следующий код.

import Foundation
import UIKit

class EZLabel: UILabel {

    override func awakeFromNib() {
        super.awakeFromNib()
        changeFontName()
    }

    func changeFontName()
    {
        self.font = UIFont(name: "Roboto", size: self.font.pointSize)
    }
}

Преимущество заключается в том, что вам не нужно менять каждый шрифт UILabel во всем проекте, если это необходимо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню