๐ Custom Font ์ถ๊ฐ
๊ธฐ์กด์ Xcode์ ์ปค์คํ ํฐํธ๋ฅผ ์ถ๊ฐํ ๋,

์ด๋ ๊ฒ ํฐํธํ์ผ๋ค์ ๋๋๊ทธํ์ฌ ์ถ๊ฐํ๊ณ ,

info์์ ํฐํธ๋ค์ Target ์ค์ ํ์ฌ ์ฌ์ฉํ๋จ๋ง์ด์์?
๋ง์ง๋ง์ผ๋ก, Font Extension ํ์ผ์ ์์ฑํ์๊ณ ์ !
<swift />
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 ํ๋๋ง๋ค ์ผ์ผ์ด ๋ฑ๋กํด๋ ๋์ง ์์๋ ๋ฉ๋๋ค. ๋ฐ๋ก ์๋ ์ฒ๋ผ์.
<swift />
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 ๋ณ๋ก ๋ฑ๋กํ๊ณ , ๋ฉ์๋๋ฅผ ํตํด์ ๋ฐ๋ก ๋ฑ๋กํด์ ์ฌ์ฉํ ์ ์๊ฒ๋ ํฉ๋๋ค.
<swift />
Text("Hello Apple")
.font(.setPretendard(weight: .medium, size: 16))
์ด๋ ๊ฒ .font๋ฅผ ์ ์ฉ์์ผ์ผ ํ ๋๋ง๋ค weight๊ณผ size๋ง ์ถ๊ฐํ์ฌ ๋ฐ๋ก๋ฐ๋ก ์ฌ์ฉํ๋ ํจ์ฌ ํธํ ๊ฒ ๊ฐ์ต๋๋ค ~!