Когда я использую UILabel
, я установил системный шрифт как:Что делать с CATextLayer, чтобы тот же шрифт отображался как системный шрифт в UILabel?
label.font = UIFont.systemFontOfSize(18, weight: UIFontWeightMedium)
Теперь я пытаюсь использовать CATextLayer
и я искал в Интернете и обнаружил, что система шрифты для прошивки 9 является San Francisco
и имя шрифта .SFUIText-Medium
, так что я пытаюсь установить имя шрифта, как:
textLayer = CATextLayer()
textLayer.font = CTFontCreateWithName(".SFUIText-Medium", 18, nil)
Однако, шрифты, отображаемые на экране устройства не являются одинаковыми для UILabel
& CATextLayer
, как описано выше. Какое правильное имя шрифта должно использоваться в CATextLayer
здесь, так что я могу иметь точно такой же шрифт, что и UILabel
?
Отлично! Теперь шрифт выглядит одинаково, однако кажется, что высоты разные. Я использую 'sizeToFit()' через UILabel, чтобы получить высоту для двух строк текста. Когда я устанавливаю эту высоту в CATextLayer, который использует тот же шрифт и размер шрифта, он отображает только одну строку текста и получает усечение. –
После большего количества тестов действительно есть разница в высоте. Я добавляю около 5% к высоте UILabel, тогда все в порядке. –