UIFont - як отримати системний тонкий шрифт


98

UIFontє методи отримати звичайний шрифт ( systemFontOfSize) або жирний шрифт ( boldSystemFontOfSize), але як отримати "тонкий шрифт системи", доступний через раскадровку?

Передача "тонкістю системи" до UIFontContrctor не працює, цей конструктор працює лише для несистемних шрифтів.

Відповіді:


266

Ви можете використовувати системний шрифт тонкої ваги:

UIFont.systemFont(ofSize: 34, weight: UIFontWeightThin)

Список доступних ваг для Сан-Франциско:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack

ваги шрифту Сан-Франциско

Станом на iOS 11 UIFontWeight* було перейменовано в UIFont.Weight.*. Більше ви можете отримати тут https://developer.apple.com/documentation/uikit/uifont.weight .


10
Лише для iOS 8.2 та пізніших версій, thnx
Хусам

32

Станом на iOS 8.2 тепер ви можете використовуватиUIFont.systemFontOfSize(_ fontSize: CGFloat, weight weight: CGFloat):

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

iOS SDK надав константи для ваги:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

Використовувати системний шрифт краще, ніж створювати шрифт на основі імені шрифту, коли ви хочете використовувати системні шрифти, оскільки iOS може змінити їх системні шрифти на iOS (як, наприклад, коли це робилося з Helvetica Neue в iOS 7, а тепер, San Francisco в iOS 9) .

Тому я б запропонував включити файл TTF потрібного шрифту, як використовувати цей файл ttf як спеціальний шрифт, а також використовувати спеціальний шрифт у вашій програмі.

Це особлива причина, чому я не люблю Apple. Ніколи не йдіть, як кажуть Apple. Завжди робимо те, що ми хочемо. Apple продовжує змінювати шрифт за замовчуванням для кожної ОС.


7

Крім того, якщо ви хочете зберегти один і той же розмір шрифту і просто змінити вагу, тоді використовуйте цільовий розмір шрифту. Наприклад:

demoLabel.font = UIFont.systemFont(ofSize: demoLabel.font.pointSize, weight: UIFontWeightThin)

за допомогою цього ви можете зберегти розмір шрифту мітки за замовчуванням і просто змінити вагу.

Станом на iOS 11, UIFontWeightThin було перейменовано на UIFont.Weight.thin. Більше ви можете отримати тут https://developer.apple.com/documentation/uikit/uifont.weight .


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.