Я стараюсь, чтобы размеры моего шрифта масштабировались с изменением ширины системы (через настройки iOS), но я могу получить эту функцию только в том случае, если я установил Text Style
в Body и т. Д. В Interface Builder
.iOS 9 Адаптируемые размеры шрифта?
Я думаю, способ сделать это может быть, чтобы получить системный шрифт, то фактор, что немного, чтобы получить новый размер шрифта для использования:
let bodyFont = UIFont.preferredFontForTextStyle(UIFontTextStyleBody)
label.font = UIFont(descriptor: bodyFont.fontDescriptor(), size: bodyFont.pointSize * 1.2)
Но есть лучший способ, потому что это чувствует себя не так.
И есть ли способ получить уведомление при изменении размера шрифта системы?
Так что мне нужно слушать это на каждом из моих лейблов? Будет ли это истощать много тесто или будет хорошо? – Bjarte
Я бы предложил прослушать это в вашем активном ViewController, а затем вызвать метод, который обновляет все размеры ваших меток. Это будет нормально для аккумулятора, он будет вызываться только в том случае, если пользователь изменит свой размер шрифта. Это хороший пример: http://useyourloaf.com/blog/supporting-dynamic-type.html – totiG
Это звучит как очень плохая идея для этого приложения, над которым я работаю - у меня много разных текстов. У меня очень длинный стол с множеством разных взглядов, которые могут появляться и исчезать и нуждаться в адаптации. Он будет тесно связывать компоненты с viewcontroller. Это звучит очень грязно для поддержания. – Bjarte