UIFont - jak uzyskać cienką czcionkę systemową

98

UIFontma metody uzyskiwania zwykłej czcionki ( systemFontOfSize) lub pogrubionej czcionki ( boldSystemFontOfSize), ale jak uzyskać „cienką czcionkę systemową” dostępną w scenorysie?

Przekazywanie „system-thin” do UIFontContructor nie działa, ten konstruktor działa tylko dla czcionek niesystemowych.

MiguelSlv
źródło

Odpowiedzi:

266

Możesz użyć cienkiej grubości czcionki systemowej:

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

Lista dostępnych wag dla San Francisco:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack

san francisco grubości czcionek

Od wersji iOS 11 UIFontWeight* została zmieniona na UIFont.Weight.*. Więcej można uzyskać tutaj https://developer.apple.com/documentation/uikit/uifont.weight .

s1ddok
źródło
10
Tylko dla iOS 8.2 i nowszych, dzięki
Husam
32

Od iOS 8.2 możesz teraz używaćUIFont.systemFontOfSize(_ fontSize: CGFloat, weight weight: CGFloat):

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

Pakiet SDK dla systemu iOS zapewnia stałe dla wag:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

Korzystanie z czcionki systemowej jest lepsze niż tworzenie czcionki na podstawie nazwy czcionki, gdy chcesz używać czcionek systemowych, ponieważ iOS może zmienić ich czcionki systemowe na iOS (tak jak w przypadku Helvetica Neue w iOS 7, a teraz San Francisco w iOS 9) .

Sugeruję więc, aby dołączyć plik TTF czcionki, którą chcesz, jako użyć tego pliku ttf jako niestandardowej czcionki i użyć niestandardowej czcionki w swojej aplikacji.

To jest szczególny powód, dla którego nie lubię Apple. Nigdy nie rób tego, co mówi Apple. Zawsze rób co chcemy. Apple ciągle zmienia domyślną czcionkę dla każdego systemu operacyjnego.

Fahim Parkar
źródło
7

Również jeśli chcesz zachować ten sam rozmiar czcionki i po prostu zmienić grubość, użyj z rozmiaru czcionki elementu docelowego. Na przykład:

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

dzięki temu możesz zachować domyślny rozmiar czcionki i po prostu zmienić grubość.

Począwszy od iOS 11, zmieniono nazwę UIFontWeightThin na UIFont.Weight.thin. Więcej można uzyskać tutaj https://developer.apple.com/documentation/uikit/uifont.weight .

GrandFelix
źródło
2

Swift 4.2

 label.font = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.thin)
Pranit
źródło