โ๏ธ Text
Text ๋ ํ์ค ์ด์์ ์ฝ๊ธฐ ์ ์ฉ ๊ธ์๋ฅผ ํํํ๊ธฐ ์ํ View ์ ๋๋ค.
Text initializer
Text ์์ฑ์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ, ์ด๋ฏธ์ง๋ก๋ ์์ฑํ ์ ์๋๊ฒ UIKit ๊ณผ๋ ๋ค๋ฅธ๊ฑฐ ๊ฐ์์. NSAttributedString ์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํ๊ธด ํ์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ํ ์คํธ์ ์ฐ๊ฒฐํ ์ ์๊ฒ ์ ๊ณตํด์ฃผ๋ค์.
- init(String) → ๋จ์ ๋ฌธ์์ด, Localized ๊ด๋ จ ์์ฑ์๋ ๋ฐ๋ก ์์ด์.
- init(AttributedString) → NSAttributedString ์ด๋ ๋ค๋ฆ ๋๋ค. (+iOS15)
- init(Image) → ๋ค๋ฅธ Text ๋ค์ด๋ ์ฐ๊ฒฐํ๊ธฐ์ํ Image
- init(_ date: Date, style: Text.DataStyle)
- Text.DataStyle : date, offset, relative, time, timer ๋ฑ ์คํ์ผ
Text ์คํ์ผ ์ค์ ๋ฉ์๋
- font(Font?) : Font ๊ตฌ์กฐ์ฒด์ ์ ์๋ title, caption ๋ฑ์ ๊ธฐ๋ณธ ํฐํธ์ ์์คํ ํฐํธ, ์ปค์คํ ํฐํธ ๋ฑ ์ค์ ํ ์ ์๋ค.
- fontWeight(Font.Weight?) : black, bold, light, medium, regular ๋ฑ ํฐํธ์ ๊ตต๊ธฐ์ ๋ํ ์ค์
- foregroundColor(Color?) : ํ ์คํธ ์์
- bold(), italic() : ๊ตต๊ธฐ, ๊ธฐ์ธ์
- strikethrough(Bool, color: Color?), underline(Bool, color: Color?) : ์ทจ์์ , ๋ฐ์ค
- monospacedDigit() : ๊ธ์์ ์ซ์์ ๋๋น๋ฅผ ๋์ผํ๊ฒ ์ค์
- kerning(CGFloat), tracking(CGFloat) : ์๊ฐ ๊ด๋ จ .. ๋ ๋ค ์ ์ฉํ๋ค๋ฉด kerning ๋ฌด์ tracking ๋ง ์ ์ฉ๋๋ค.
- textCase(Text.Case?) : ์๋ฌธ์ ๋๋ ๋๋ฌธ์๋ง ์ ์ฉ๊ฐ๋ฅํ๋๋ก ํ๋ค.
Handling Multiline Text
- lineLimit(Int?) : Int ๊ฐ์ผ๋ก ๊ธธ์ด ์ ํ, ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ nil ๋ก ๊ธธ์ด๋ ๋ฌด์ ํ์ผ๋ก ์ค์ ๋๋ค.
- lineSpacing(CGFloat) : ํ๊ฐ์ ์ค์ ํ ์ ์๋ค.
- multilineTextAlignment(TextAlignment) : ์ฌ๋ฌ์ค์ผ๋ ํ ์คํธ์ ์ ๋ ฌ(center, leading, trailing)์ ์ค์ ํ๋ค.
๐ผ Image
Image ๋ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ์ํ View ์ ๋๋ค.
PNG, JPEG, HEIC ๋ฑ์ ์ด๋ฏธ์ง ํ์ผ์ ์ฑ ๋ด์ asset ๋๋ bundle ๋ก ์ ์ฅํ๋ฉด, Image ํ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ค ์ ์์ด์. Image ๋ ๊ธฐ์กด์ UIImage, NSImage ์ ๊ฐ์ ํ๋ซํผ๋ณ ์ด๋ฏธ์ง ํ์ ์ instance ์ ๋๋ค. UIImage ๋ UIKit ์ด๋ฏธ์ง ํ์ ์ผ๋ก, ํด๋น ์ด๋ฏธ์ง ํ์ ์์ ๋ณํํ๋ ์์ฑ์๋ฅผ ์ ๊ณตํ๋ค์.
Image initializer
- init(String, bundle: Bundle?) : asset ํด๋์ ์ ์ฅํ ์ด๋ฏธ์ง ์ด๋ฆ์ ์ง์ ํด ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ค.
- init(String, bundle: Bundle?, label: Text) : ์์ ๋์ผํ์ง๋ง, label ์ ์ง์ ํด ์ ๊ทผ์ฑ ์ ๊ณต์ ์ฌ์ฉํ ์ ์๋ค.
- init(systemName: String) : ์์คํ ์์ ์ ๊ณตํ๋ ์ด๋ฏธ์ง์ธ SF Symbols ์ ์ฌ์ฉํ ์ ์๋ค.
- init(uiImage: UIImage) : UIKit ์ด๋ฏธ์ง ํ์ ์ธ UIImage ์ Swift ์ด๋ฏธ์ง ํ์ ์ธ Image ๋ก ๋ณํํ๋ค.
Image resizable & aspectRatio
Image ์ frame ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์ค์ ํ๋๋ผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ณธ ๋น์จ๊ณผ ํฌ๊ธฐ๋ฅผ ์ ์งํ๊ณ , resizable ๋ฉ์๋๋ฅผ ์ค์ ํด์ค์ผ๋ง Image ๋น์จ์ด ์ฌ์ค์ ๋ผ์.
์๋ ์บก์ณ์์ resizable() ๋ฉ์๋๋ฅผ ์ ์ฉํ์ง ์์ ์ด๋ฏธ์ง๋ frame ์ ๋ฒ์ด๋ ๊ฑธ ๋ณด์ค ์ ์์ด์ ๐ resizable() ๋ฉ์๋๋ฅผ ์ ์ฉํ๋ฉด frame ์ ๋ฑ๋ง๊ฒ ์ฌ์ด์ฆ๊ฐ ์ฌ์กฐ์ ๋ฉ๋๋ค. resizable ๋ฉ์๋๋ง ์ ์ฉํ๋ฉด ์ด๋ฏธ์ง ๋น์จ์ด ์ ์ง๋์ง ์๊ธฐ์ ๋์ด์ ธ ๋ณด์ ๋๋ค.
aspectRatio ๋ฉ์๋๋ฅผ ํตํด content mode ๋ฅผ ์ง์ ํด์ ์ด๋ฏธ์ง ์๋ณธ์ ๋น์จ์ ๋ง๊ฒ ์ค์ ํ ์ ์์ด์. fit ์ frame ๋ด๋ถ์ ๋ง๊ฒ ์กฐ์ ๋๊ณ , fill ์ frame ์ ์ต๋์ ๋ง๊ฒ ์กฐ์ ๋ฉ๋๋ค.
ํด๋น ๋ฌธ์์ Fitting Image ์ ๋ํด ์ข ๋ ์์ธํ ์ ํ์๊ณ , ์ํฉ์ ๋ง๊ฒ ์ฌ์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ์์!
https://developer.apple.com/documentation/swiftui/fitting-images-into-available-space
๐ ์ฐธ๊ณ ๋ฌธ์
- Text https://developer.apple.com/documentation/swiftui/text
- Image https://developer.apple.com/documentation/swiftui/image
- SF Symbols https://developer.apple.com/sf-symbols/
'๐ iOS > SwiftUI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS/SwiftUI] @Environment ์์๋ณด๊ธฐ / ๋ชจ๋ฌ ๋ทฐ ๋ซ๊ธฐ dismiss ํ์ฉ (0) | 2023.06.15 |
---|---|
[iOS/SwiftUI] @ViewBuilder, @resultBuilder ๊ฐ ๋ฌด์์ผ๊น? (0) | 2023.06.07 |
[iOS] SwiftUI LazyVStack LazyHStack :: lazy load views (1) | 2022.06.07 |
[iOS] SwiftUI property wrapper @State @Binding (0) | 2022.06.02 |
[iOS/SwiftUI] View, Stack ๊ธฐ๋ณธ ์ ๋ฆฌ (0) | 2022.04.29 |