Text
A view that displays one or more lines of read-only text
ํ ์ค ์ด์์ ์ฝ๊ธฐ ์ ์ฉ text๋ฅผ ํ์ํ๋ ๋ทฐ์ ๋๋ค. Text ๋ทฐ๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ ํ์ํ ํ ์คํธ๋ฅผ ์ง์ ํฉ๋๋ค.
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hello, SwiftUI!")
}
}
ํ ์คํธ ์คํ์ผ ์ ์ฉํ๊ธฐ
.font()๋ฅผ ์ฌ์ฉํด ํ ์คํธ์ ๊ธ๊ผด ํฌ๊ธฐ์ ์คํ์ผ์ ์ง์ ํ ์ ์์ต๋๋ค.
Text("Hello, SwiftUI!")
.font(.title)
.title, .caption ๋ฑ ์ฌ์ ์ ์ ์๋ ํ ์คํธ ์คํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Text("Hello, SwiftUI!")
.font(.system(size: 20, weight: .bold))
system font๋ฅผ ์ฌ์ฉํด ํฌ๊ธฐ์ ๊ตต๊ธฐ๋ฅผ ์ง์ ํด ์คํ์ผ์ ์ง์ ์ง์ ํ ์๋ ์์ต๋๋ค.
Text("Hello, SwiftUI!")
.font(.custom("YourCustomFontName", size: 20))
ํฐํธ ํ์ผ์ ํ๋ก์ ํธ์ ์ถ๊ฐํด ์ฌ์ฉ์ ์ง์ ํฐํธ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
VStack(spacing: 30) {
Text("Hello\n SwiftUI!")
.lineSpacing(20)
Text("Hello\n SwiftUI!")
.lineSpacing(10)
Text("Hello\n SwiftUI!")
.lineSpacing(0)
}
lineSpacing์ ํ ์คํธ์ ์ค ๊ฐ๊ฒฉ์ ์กฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํ ์คํธ์ ๊ฐ ์ค ์ฌ์ด์ ๊ณต๊ฐ์ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ์ ์์ต๋๋ค.
VStack(spacing: 30) {
Text("Hello SwiftUI!")
.kerning(2)
Text("Hello SwiftUI!")
.kerning(0)
Text("Hello SwiftUI!")
.kerning(-2)
}
VStack(spacing: 30) {
Text("Hello SwiftUI!")
.tracking(2)
Text("Hello SwiftUI!")
.tracking(0)
Text("Hello SwiftUI!")
.tracking(-2)
}
kerning๊ณผ tracking์ ์ฌ์ฉํด ๊ธ์ ๊ฐ๊ฒฉ์ ์กฐ์ ํ ์ ์์ต๋๋ค.
- kerning์ ํฐํธ ์ข ๋ฅ์ ์์กด์ฑ์ ๊ฐ์ง๋ฉฐ, ๊ฐ ํฐํธ๊ฐ ๊ฐ์ง ํน์ฑ์ ๋ฐ๋ผ ๊ธ์ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ฐ์ ธ ๊ธ์ ๊ฐ๊ฒฉ์ ์กฐ์ ํฉ๋๋ค.
- tracking์ ํฐํธ ์ข ๋ฅ์ ๊ด๊ณ์์ด ๊ฐ ๊ธ์ ์์ ๊ฐ๊ฒฉ์ ์กฐ์ ํฉ๋๋ค.
- ํ ๊ฐ์ TextView์ kerning, tracking์ด ๋ชจ๋ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ tracking์ ์ฐ์ ์ํ๊ณ , kerning์ ๋ฌด์๋ฉ๋๋ค.
Text("Hello, SwiftUI!")
.foregroundColor(.blue)
foregroundColor๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ์ ์์ ์ง์ ํ ์ ์์ต๋๋ค.
์ฌ๋ฌ ์ค์ ํ ์คํธ ํ์ํ๊ธฐ
VStack(spacing: 30) {
Text("Hello\nSwiftUI!\nhello\nswiftUI!")
.lineLimit(2)
}
lineLimit๋ฅผ ์ฌ์ฉํด ํํ๋๋ ์ค ์์ ์ ํ์ ์ ํ ์ ์์ต๋๋ค. ์ ํ๋ ์ค ์ ๋ฅผ ๋์ด๊ฐ๋ฉด ํ ์คํธ๋ ์๋ฆฝ๋๋ค.
lineLimit๋ฅผ nil๋ก ํ๋ฉด ์ค ์ ์ ํ ์์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
VStack(spacing: 30) {
Text("abcdefghig")
.lineLimit(1)
.truncationMode(.head)
Text("abcdefghig")
.lineLimit(1)
.truncationMode(.middle)
Text("abcdefghig")
.lineLimit(1)
.truncationMode(.tail)
}
.frame(width: 50)
truncationMode๋ฅผ ์ฌ์ฉํด ์ํ๋ ์์น์ Text๋ฅผ ์๋ตํ ์ ์์ต๋๋ค.
VStack(spacing: 30) {
Text("Hello, SwiftUI!\nWelcome to SwiftUI world!")
.multilineTextAlignment(.center)
Text("Hello, SwiftUI!\nWelcome to SwiftUI world!")
.multilineTextAlignment(.leading)
Text("Hello, SwiftUI!\nWelcome to SwiftUI world!")
.multilineTextAlignment(.trailing)
}
multilineTextAlignment๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์ค์ ํ ์ค๋ฅผ ์ ๋ ฌํ ์ ์์ต๋๋ค.
๋์ ์ธ ํ ์คํธ ํ์ํ๊ธฐ
struct ContentView: View {
@State private var name = "SwiftUI"
var body: some View {
Text("Hello, \(name)!")
.font(.title)
.foregroundColor(.blue)
}
}
@State ์์ฑ์ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ๋์ ์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
'๐ iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[RxSwift] Observable (0) | 2024.06.07 |
---|---|
[RxSwift] RxSwift๋? (0) | 2024.06.03 |
[SwiftUI] Stack (VStack/HStack/ZStack) (0) | 2024.04.08 |
[SwiftUI] Property Wrappers (0) | 2024.04.04 |
[๋น๋๊ธฐ ์ฒ๋ฆฌ] ๋น๋๊ธฐ ์ฒ๋ฆฌ๋? (0) | 2023.09.18 |