๐ Custom Font ์ถ๊ฐ
๊ธฐ์กด์ Xcode์ ์ปค์คํ ํฐํธ๋ฅผ ์ถ๊ฐํ ๋,
์ด๋ ๊ฒ ํฐํธํ์ผ๋ค์ ๋๋๊ทธํ์ฌ ์ถ๊ฐํ๊ณ ,
info์์ ํฐํธ๋ค์ Target ์ค์ ํ์ฌ ์ฌ์ฉํ๋จ๋ง์ด์์?
๋ง์ง๋ง์ผ๋ก, Font Extension ํ์ผ์ ์์ฑํ์๊ณ ์ !
extension Font {
// Bold
static let pretendardBold28: Font = .custom("Pretendard-Bold", size: 16)
static let pretendardBold24: Font = .custom("Pretendard-Bold", size: 20)
// SemiBold
static let pretendardSemiBold16: Font = .custom("Pretendard-SemiBold", size: 16)
static let pretendardSemiBold18: Font = .custom("Pretendard-SemiBold", size: 18)
// Medium
static let pretendardMedium18: Font = .custom("Pretendard-Medium", size: 16)
static let pretendardMedium16: Font = .custom("Pretendard-Medium", size: 26)
// Regular
static let pretendardRegular14: Font = .custom("Pretendard-Regular", size: 14)
static let pretendardRegular16: Font = .custom("Pretendard-Regular", size: 18)
}
์ด๋ฐ์์ผ๋ก ๊ธ์จ์ฒด์ ๋๊ป์ ํฌ๊ธฐ๋ฅผ ํ๋ฒ์ ์ง์ ํด์, ์ค์ Text์ Font๋ฅผ ์ ์ฉํ ๋๋ ์ง์ ํ๋ ๊ฒ์ ๊ทธ๋๋ก ๊ฐ๋ค ์ฌ์ฉํ์์ต๋๋ค.
์ด๋ ๊ฒ ์ต๊ทผ ํ๋ก์ ํธ์์ ํฐํธ๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ ๋ถํธํ ์ ๋ค์ด ์์์ต๋๋ค.
๐ค ํ์ Size๋ ์ง์ ๋์ง ์์ ํฐํธ๊ฐ ํ์ํ ๋๋ง๋ค ์ถ๊ฐ๋ฅผ ํด์ค์ผํ๊ณ , ๊ทธ์ ๋ฐ๋ผ ์ฝ๋๊ฐ ๋์ด๋๊ฒ ๋๋ ๊ฒ ์ ๋๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด Extension ํ์ผ์ ์ฝ๋๋ ๋์์์ด ๋์ด๋๊ฒ ์ฃ ?
๊ทธ๋์ ์ด๊ฑฐํ ๋ฐ ๋ฉ์๋๋ฅผ ํตํด์ ์๋ก์ด ํฐํธ๊ฐ ํ์ํ ๋๋ง๋ค ๋ฉ์๋๋ฅผ ํตํด์ ๋ฑ๋กํด์ ๋ฐ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์์ ํ์์ต๋๋ค.
๊ทธ๋ผ ์์ ์ฝ๋์ฒ๋ผ Size ํ๋๋ง๋ค ์ผ์ผ์ด ๋ฑ๋กํด๋ ๋์ง ์์๋ ๋ฉ๋๋ค. ๋ฐ๋ก ์๋ ์ฒ๋ผ์.
import SwiftUI
extension Font {
/// Black / ExtraBold / Bold / SemiBold / Medium / Regular / Light / ExtraLight / Thin
enum FontWeight: String {
case black = "Pretendard-Black"
case bold = "Pretendard-Bold"
case extraBold = "Pretendard-ExtraBold"
case extraLight = "Pretendard-ExtraLight"
case light = "Pretendard-Light"
case medium = "Pretendard-Medium"
case regular = "Pretendard-Regular"
case semiBold = "Pretendard-SemiBold"
case thin = "Pretendard-Thin"
}
static func setPretendard(weight: FontWeight, size: CGFloat) -> Font {
return .custom(weight.rawValue, size: size)
}
}
์ด๋ ๊ฒ ์ด๊ฑฐํ์ผ๋ก Font Weight ๋ณ๋ก ๋ฑ๋กํ๊ณ , ๋ฉ์๋๋ฅผ ํตํด์ ๋ฐ๋ก ๋ฑ๋กํด์ ์ฌ์ฉํ ์ ์๊ฒ๋ ํฉ๋๋ค.
Text("Hello Apple")
.font(.setPretendard(weight: .medium, size: 16))
์ด๋ ๊ฒ .font๋ฅผ ์ ์ฉ์์ผ์ผ ํ ๋๋ง๋ค weight๊ณผ size๋ง ์ถ๊ฐํ์ฌ ๋ฐ๋ก๋ฐ๋ก ์ฌ์ฉํ๋ ํจ์ฌ ํธํ ๊ฒ ๊ฐ์ต๋๋ค ~!