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)
}
}