UIFont - cara mendapatkan font tipis sistem

98

UIFontmemiliki metode untuk mendapatkan font biasa ( systemFontOfSize) atau huruf tebal ( boldSystemFontOfSize), tetapi bagaimana cara mendapatkan "font sistem tipis" tersedia melalui storyboard?

Meneruskan "setipis sistem" ke UIFontPembuat tidak berfungsi, konstruktor ini hanya berfungsi untuk font non sistem.

MiguelSlv
sumber

Jawaban:

266

Anda dapat menggunakan font sistem yang tipis:

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

Daftar anak timbangan yang tersedia untuk San Francisco:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack

bobot font san francisco

Sejak iOS 11, UIFontWeight* diubah namanya menjadi UIFont.Weight.*. Selengkapnya Anda bisa dapatkan di sini https://developer.apple.com/documentation/uikit/uifont.weight .

s1ddok
sumber
10
Hanya untuk iOS 8.2 dan yang lebih baru, terima kasih
Husam
32

Mulai iOS 8.2 , Anda sekarang dapat menggunakanUIFont.systemFontOfSize(_ fontSize: CGFloat, weight weight: CGFloat):

UIFont.systemFontOfSize(19, weight: UIFontWeightLight)

SDK iOS memberikan konstanta untuk bobot:

UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy

Menggunakan font sistem lebih baik daripada membuat font berdasarkan nama font ketika Anda ingin menggunakan font sistem karena iOS dapat mengubah font sistem mereka di iOS (seperti yang mereka lakukan dengan Helvetica Neue di iOS 7, dan sekarang, San Francisco di iOS 9) .

Jadi yang saya sarankan adalah menyertakan file TTF dari font yang Anda inginkan sebagai gunakan file ttf itu sebagai font khusus dan gunakan font khusus di aplikasi Anda.

Inilah alasan khusus mengapa saya tidak menyukai Apple. Jangan pernah mengikuti apa yang dikatakan Apple. Selalu lakukan apa yang kita inginkan. Apple terus mengubah font default untuk setiap OS.

Fahim Parkar
sumber
7

Juga jika Anda ingin menjaga ukuran font yang sama dan hanya mengubah berat maka gunakan dari ukuran font elemen yang ditargetkan. Sebagai contoh:

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

dengan ini Anda dapat mempertahankan ukuran font label default dan hanya mengubah beratnya.

Mulai iOS 11, UIFontWeightThin telah diubah namanya menjadi UIFont.Weight.thin. Selengkapnya Anda bisa dapatkan di sini https://developer.apple.com/documentation/uikit/uifont.weight .

GrandFelix
sumber
2

Swift 4.2.0

 label.font = UIFont.systemFont(ofSize: 15, weight: UIFont.Weight.thin)
Pranit
sumber