๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ iOS

[iOS/Swift] Custom Font ์‚ฌ์šฉํ•˜๊ธฐ

by ํ‹ด๋”” 2021. 12. 19.
728x90
๋ฐ˜์‘ํ˜•

์‚ฌ์šฉํ•  ํฐํŠธ ๋‹ค์šด๋กœ๋“œ ๋ฐ 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)

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์„ฑ๊ณต!

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€