Как программно установить размер шрифта, чтобы он соответствовал значению numberOflines в swift4 - PullRequest
0 голосов
/ 31 мая 2018

У меня есть две UILabel с именами headingLabel и descriptionLabel, количество строк которых равно 3 и 5 соответственно.Теперь я хочу, чтобы размер шрифта текста изменился и вписался в число строк, где текст меняется в зависимости от некоторых сетевых данных, полученных json.

image for text in iphone5s image for text in iphoneX

 here is my code

    let headingLabel : UILabel = {
        let hl = UILabel()
        hl.translatesAutoresizingMaskIntoConstraints = false
        hl.text = "Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor"

        hl.textColor = .black
        hl.lineBreakMode = NSLineBreakMode.byWordWrapping
        hl.numberOfLines = 3;
        hl.sizeToFit()
        hl.clipsToBounds = true
        hl.font = hl.font.withSize(20)

        return hl
    }()

    let descriptionLabel : UILabel = {
        let dl = UILabel()
        dl.translatesAutoresizingMaskIntoConstraints = false
        dl.text = "Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor sit amet amet Lorem ipsum dolorLorem ipsum dolor sit amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor sit amet amet Lorem ipsum dolor"
        dl.textColor = .black
        dl.lineBreakMode = NSLineBreakMode.byWordWrapping
        dl.numberOfLines = 5
        dl.font = dl.font.withSize(18)
        dl.sizeToFit()
        dl.clipsToBounds = true
        dl.alpha = 0.8
        return dl
    }()

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Используйте автоматическое сжатие для настройки текста в рамке метки.

Автоусадка с минимальным размером шрифта

enter image description here

Автоусадка с минимальной шкалой шрифта

enter image description here

Apple, документ о UILabel - Автоусадка

Определяет, регулирует ли метка внешний видтекст, прежде чем прибегать к усечению.Выберите «Минимальный масштаб шрифта» и введите значение, чтобы метка могла уменьшить размер шрифта до размера текста.Включите Интервал между буквами, чтобы метка уменьшала межсимвольный интервал.Получите доступ к этим значениям во время выполнения с помощью функции minimalScaleFactor и позволяет соответственно свойствам DefaultTighteningForTruncation.

0 голосов
/ 31 мая 2018

Пожалуйста, дайте:

dl.numberOfLines =  0

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...