์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[ํŒ€ํ”„๋กœ์ ํŠธ2์ผ์ฐจ] ํฐํŠธ๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๋Š” ํฐํŠธ ์„ค์ •์„ ์œ„ํ•œ ๊ตฌ์กฐ์ฒด ์ ์šฉ / ํฐํŠธ ์„ค์ • ์•ˆ๋˜๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ

๋ณธ๋ฌธ

struct Font {
    let name: String
    let size: CGFloat

    func font() -> UIFont? {
        return UIFont(name: name, size: size)
    }
}

struct FontNames {
    static let mainFont: Font = Font(name: "LINESeedSansKR-Bold", size: 20.0)
    static let mainFont2: Font = Font(name: "LINESeedSansKR-Bold", size: 25.0)
    static let mainFont3: Font = Font(name: "LINESeedSansKR-Bold", size: 30.0)
    static let mainFont4: Font = Font(name: "LINESeedSansKR-Bold", size: 18.0)
    static let mainFont5: Font = Font(name: "LINESeedSansKR-Bold", size: 14.0)


    static let subFont: Font = Font(name: "LINESeedSansKR-Regular", size: 10.0)
    static let subFont2: Font = Font(name: "LINESeedSansKR-Regular", size: 15.0)
    static let subFont3: Font = Font(name: "LINESeedSansKR-Regular", size: 20.0)

    static let thinFont: Font = Font(name: "LINESeedSansKR-Thin", size: 10.0)
    static let thinFont2: Font = Font(name: "LINESeedSansKR-Thin", size: 15.0)
    static let thinFont3: Font = Font(name: "LINESeedSansKR-Thin", size: 20.0)

    static func allFonts() -> [(font: UIFont?, name: String, size: CGFloat)] {
        return [
            (mainFont.font(), mainFont.name, mainFont.size),
            (subFont.font(), subFont.name, subFont.size),
            (thinFont.font(), thinFont.name, thinFont.size)
        ]
    }
}

 

์‚ฌ์šฉ ์˜ˆ์‹œ 

let label = UILabel() label.font = FontNames.mainFont.font()

 

 

ํฐํŠธ ๊ด€๋ฆฌ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ํฐํŠธ๋“ค์„ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ •์˜ํ•˜๊ณ  ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •์˜๋œ ๊ตฌ์กฐ์ฒด๋“ค์ด๋‹ค. 

๊ฐ ํฐํŠธ๋Š” ์ด๋ฆ„๊ณผ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ด๋ฅผ ์ด์šฉํ•ด UIFont ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ตฌ์กฐ์ฒด ์„ค๋ช…

Font ๊ตฌ์กฐ์ฒด

Font ๊ตฌ์กฐ์ฒด๋Š” ๋‘ ๊ฐœ์˜ ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

name: ํฐํŠธ์˜ ์ด๋ฆ„ (๋ฌธ์ž์—ด ํƒ€์ž…)

size: ํฐํŠธ์˜ ํฌ๊ธฐ (CGFloat ํƒ€์ž…)

font() ๋ฉ”์„œ๋“œ:

UIFont ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ

UIFont(name: size:) ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํฐํŠธ ์ด๋ฆ„๊ณผ ํฌ๊ธฐ๋ฅผ ์ด์šฉํ•ด UIFont ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜

๋งŒ์•ฝ ํฐํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฉด nil์„ ๋ฐ˜ํ™˜

FontNames ๊ตฌ์กฐ์ฒด

์—ฌ๋Ÿฌ ํฐํŠธ๋“ค์„ ์ •์  ์ƒ์ˆ˜๋กœ ์ •์˜ํ•ด ๋†“์€ ๊ตฌ์กฐ์ฒด

mainFont, subFont, thinFont ๋“ฑ ๋‹ค์–‘ํ•œ ํฐํŠธ๋“ค์ด ์ •์˜๋˜์–ด ์žˆ๋‹ค. ๊ฐ ํฐํŠธ๋Š” Font ๊ตฌ์กฐ์ฒด๋กœ ์ •์˜๋˜์–ด ์žˆ๋‹ค.

allFonts() ๋ฉ”์„œ๋“œ:

๋ชจ๋“  ํฐํŠธ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ

๊ฐ ๋ฐฐ์—ด ์š”์†Œ๋Š” ํŠœํ”Œ (font: UIFont?, name: String, size: CGFloat) ํ˜•ํƒœ๋กœ ๋˜์–ด ์žˆ์–ด, ๊ฐ๊ฐ์˜ ํฐํŠธ ๊ฐ์ฒด์™€ ์ด๋ฆ„, ํฌ๊ธฐ๋ฅผ ํฌํ•จํ•œ๋‹ค.

ํฐํŠธ ์ •์˜

mainFont: ๊ตต์€ ์Šคํƒ€์ผ (LINESeedSansKR-Bold)

subFont: ์ผ๋ฐ˜ ์Šคํƒ€์ผ (LINESeedSansKR-Regular)

thinFont: ์–‡์€ ์Šคํƒ€์ผ (LINESeedSansKR-Thin)

 

 


๊ทธ๋Ÿฌ๋‚˜ ํŒ€ํ”„๋กœ์ ํŠธ ๋•Œ ์ž‘์—… ํ•˜๋˜ ์ค‘ ์ ์šฉ์ด ๋˜์ง€ ์•Š๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 

 

์›์ธ์€ ๋‹ค์šด๋ฐ›์€ ํฐํŠธ๋ช…๊ณผ ํŒŒ์ผ๋ช…์ด ๋•Œ๋กœ๋Š” ์ผ์น˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ .. 

 

 

์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ๋Š” ํฐํŠธ ์ ์šฉ์ด ์ž˜ ๋˜๊ณ  ์žˆ์–ด ํฐํŠธ์— ์ด์ƒ์ด ์—†๋Š”๊ฒƒ์œผ๋กœ ํ™•์ธ ๋๋‹ค. 

 

์•„๋ž˜๋Š” ํฐํŠธ๋ช… ์ด๋ฆ„ ์ฐพ๊ธฐ 

 

 

 

 

key๊ฐ’์œผ๋กœ ์ ‘๊ทผํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— 

 

for fontFamily in UIFont.familyNames {
    for fontName in UIFont.fontNames(forFamilyName: fontFamily) {
        print(fontName)
    }
}

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ