์ฌ์ฉํ ํฐํธ ๋ค์ด๋ก๋ ๋ฐ xCode ํ๋ก์ ํธ ๋ด๋ถ ํด๋์ ๋๋๊ทธ ์ค ๋๋กญ์ผ๋ก ๋ฃ์ด์ค๋๋ค.
๋๋ - ์์ ์ฉ ๋ฌด๋ฃํ๊ธํฐํธ ์ฌ์ดํธ
์์ ์ ์ผ๋ก ์ด์ฉํ ์ ์๋ ๋ฌด๋ฃ ํ๊ธ ํฐํธ๋ฅผ ๋ชจ์ ๋์ ์ฌ์ดํธ ๋๋
noonnu.cc
๋๋์์ ์์ ์ฉ์ผ๋ก ์ฌ์ฉ๊ฐ๋ฅํ ๋ฌด๋ฃ ํ๊ธ ํฐํธ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์์
Copy items if needed ์ต์ ์ ์ ํํ๋ฉด xCode ํ๋ก์ ํธ ํด๋ ๋ด๋ถ์ ๋ณต์ ๋์ง๋ง
ํด์ ํ๋ ๊ฒฝ์ฐ ์๋ ํฐํธ๊ฐ ์์๋ ํด๋์ ์ฐ๊ฒฐ๋ง ๋ฉ๋๋ค.
! ์ค์ : ํฐํธ๋ฅผ ์ฌ์ฉํ ํ๊ฒ์ ์ ํํด ์ค
๋ค์์ผ๋ก
Info.plist ํ์ผ์ Fonts provided by application
ํค๋ฅผ ์ถ๊ฐํด ์ฃผ์ด์ผ ํฉ๋๋ค.
<key>UIAppFonts</key>
<array>
<string></string>
</array>
์ถ๊ฐํด ์ค ํฐํธ๋ฅผ info.plist์ ์ถ๊ฐํด ์ฃผ์ด์ผ ์ฌ์ฉ๊ฐ๋ฅ
๊ผญ ํ์ฅ์ ๊น์ง ๊ฐ์ด ์ ๋ ฅ์ ํด์ฃผ์ด์ผ ํฉ๋๋ค!
๋ฑ๋กํด ์ฃผ๊ณ ๋๋ฉด Storyboard์ Custom ํฐํธ๋ก ์ฌ์ฉ ๊ฐ๋ฅํด์
๊ฐ์ฅ ์ค์ํ ๊ณผ์ !
์ค์ ๋ณด์ด๋ ํฐํธ์ ํฐํธ๋ค์์ด ๋ฌ๋ผ์ ๊ผญ ํ๋ฒ ์ฐ์ด๋ด์ผ ํจ!
์ฝ์ง ๋ฉ์ถฐ!
viewDidLoad()์ ์ผ์์ ์ผ๋ก ํฌํจ์์ผ์ ํฐํธ ๋ค์์ ์์๋ด ๋๋ค.
for family in UIFont.familyNames.sorted() {
let names = UIFont.fontNames(forFamilyName: family)
print("Family: \(family) Font names: \(names)")
}
์ถ์ฒ : https://www.raywenderlich.com/26454946-custom-fonts-getting-started
๋ณด๋ฉด ํ์ผ์ด๋ฆ๊ณผ ๋ค๋ฅธ๊ฒ์ ๋ณผ ์ ์๋ค...
KOTRA_BOLD.otf ๊ฐ KOTRA_BOLD-Bold ์ธ ๊ฒ์ ๋ณผ ์ ์๋ค...
๋ง์ฝ KOTRA_BOLD๋ก ํฐํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ์ฉํ ์๊ฐ ์๋ค!
์๋๋ฉด ์ง์ง ์ด๋ฆ์ KOTRA_BOLD-Bold ์ด๊ธฐ ๋๋ฌธ...
์ฌ์ง์ด UIFont ์์ฑ์ !๋ก ๊ฐ์ ์ต์ ๋ ํด์ง์ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋น ใ ใ ใ
์ฌ์ฉํ๊ธฐ ํธํ๊ฒ UIFont extension์ ๋ง๋ค์ด ์ค๋๋ค
extension UIFont {
class func koTitle(size: CGFloat) -> UIFont {
return UIFont(name: "KOTRALEAP", size: size)!
}
class func koBold(size: CGFloat) -> UIFont {
return UIFont(name: "KOTRA_BOLD-Bold", size: size)!
}
class func koNormal(size: CGFloat) -> UIFont {
return UIFont(name: "KOTRA_GOTHIC", size: size)!
}
class func koSemiNormal(size: CGFloat) -> UIFont {
return UIFont(name: "KOTRA_SONGEULSSI-Medium", size: size)!
}
}
ํน์ ๋ค๋ฅธ ๊ณณ์์ ํฐํธ ๋ค์๋ง ํ์ํ๋ค๋๊ฐ
String์ ๊ด๋ฆฌํ๊ณ ์ถ๋ค๋ฉด enum์ ์ฌ์ฉํด ์ค๋๋ค
์์๋ณด๊ธฐ ์ฌ์ด ์ด๋ฆ์ผ๋ก ์ค์ ํ ์ ์๋ค๋ ๊ฒ์ด ์ฅ์
extension UIFont {
enum koFontName: String {
case title = "KOTRALEAP"
case bold = "KOTRA_BOLD-Bold"
case normal = "KOTRA_GOTHIC"
case semiNormal = "KOTRA_SONGEULSSI-Medium"
}
class func koTitle(size: CGFloat) -> UIFont {
return UIFont(name: koFontName.title.rawValue, size: size)!
}
class func koBold(size: CGFloat) -> UIFont {
return UIFont(name: koFontName.bold.rawValue, size: size)!
}
class func koNormal(size: CGFloat) -> UIFont {
return UIFont(name: koFontName.normal.rawValue, size: size)!
}
class func koSemiNormal(size: CGFloat) -> UIFont {
return UIFont(name: koFontName.semiNormal.rawValue, size: size)!
}
}
label.text = "test test test"
label.font = UIFont.koTitle(size: 30)
์ด๋ ๊ฒ ์ฌ์ฉํด ์ฃผ๋ฉด ๋ฉ๋๋ค.
์ฑ๊ณต!
'๐ iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[RxSwift] DisposeBag ๊ณผ Operator (0) | 2022.01.06 |
---|---|
[RxSwift] Observable, Operators ๊ทธ๋ฆฌ๊ณ subscribe (0) | 2022.01.05 |
[Swift] RIBs Architecture ๊ฐ์์ ํ ํ๋ฆฟ ์ค์ (0) | 2021.11.12 |
[Swift] push notification ์ ๋ฆฌ (with Firebase) permission๊ณผ ํธ์ ๋ฐ์ ๋ ํธ์ถ๋๋ ํจ์ (0) | 2021.10.27 |
[SwiftUI 3.0] URLSession ๊ณผ List, @Published, @ObservedObject ์ฌ์ฉํ๊ธฐ (0) | 2021.10.27 |
๋๊ธ