Explore the latest updates to SF Symbols, Apple's extensive library of iconography designed to integrate seamlessly with San Francisco, the system font for all Apple platforms. Discover the latest additions to the SF Symbols library and new categories in the app. Learn about the new Automatic behavior, which chooses the rendering mode that best highlights what's unique about the symbol's characteristics. See how to use the new Variable Color feature to make a symbol more dynamic. We'll also learn about a more efficient way of annotating symbols with the new unified approach. To get the most out of this session, we recommend first watching “What's new in SF Symbols” from WWDC21.
์ด ์๊ฐ์๋ SF Symbols 4 ๋ฒ์ ์ ์ ๋ฐ์ดํธ ๋ ๋ด์ฉ์ ๊ฐ๋จํ๊ฒ ์ดํด๋ณด๋๋ก ํฉ๋๋ค. ์ ๋ ์ด๋ฒ์ Rendering Mode์ ๋ํด ์ข ํฅ๋ฏธ๋กญ๊ฒ ๋ณด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฏธ SF Symbols 3 ๋ฒ์ ์๋ ์๋ ๋ด์ฉ์ด์์ง๋ง ์ด๋ฒ ์๊ฐ์์์ผ ์กฐ๊ธ ์ ๋๋ก ์ดํดํ์ง ์์๋ ์ถ๋ค์.
๋ค์ด๊ฐ๋ฉฐ
Symbol = ์ฌ๋ณผ = ๊ธฐํธ = ์์ด์ฝ = ์์ง
์ฌ๋ณผ์ ๊ทธ๋ํฝ ์ปค๋ฎค๋์ผ์ด์ ์ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๋จ์ผ ์์ ์ค ํ๋์ ๋๋ค. ๋๋, ๋์, ๋์ ๋๋ ๊ฐ๋ ์ ํํํ๊ณ ์ถ๋ค๋ฉด ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฌ๋ณผ์ ์์ฌ ์ํต์ ๋๋ ํ๋ฅญํ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ์ธํฐํ์ด์ค ๋์์ธ์ ํ์์ ์ธ ๋ถ๋ถ์ด ๋ฉ๋๋ค.
์ฌ๋ณผ์ ๋ํ ์ํธ์์ฉ์ ์๋จ์ด ๋๊ณ ๊ณต๊ฐ ํจ์จ์ ์ด๋ฉฐ ๋ง์ ์ด์ ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๋ฏธ์ ๋งค๋ ฅ์ ๋์ด๊ณ ์ฌ์ฉ์ ์นํ์ ์ผ๋ก ์ฌ์ฉ์ ๊ฒฝํ์ ์ด๋์ด๋ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ธ์ด์ ์ฅ๋ฒฝ์ ๋์ ์ ์๊ณ , ๊ณต์ ๋ ์์ด๋์ด๋ฅผ ์ ๋ฌํ๋ ๋ฐ ์์ด์ ์ฌ๋๋ค์ ํ๋๋ก ๋ฌถ์ ์ ์์ต๋๋ค.
๋๋ ๋์ํ๋ ๋ฐ์ด๋ค. ์ฌ๋ณผ(๊ธฐํธ)๋ผ๋ ๊ฒ์ ์ํธ์์ฉ, ์ํต์ ํ๋ ๋ฐ์ ์์ด ์ ๋ง ๊ฐ๋ ฅํ ์๋จ์ธ ๊ฒ ๊ฐ๋ค. ์ฌ๋ฌ ๋จ์ด, ๋ฌธ์ฅ์ ์ฐ๋ ๊ฒ๋ณด๋ค ํ๋์ ๊ธฐํธ๋ก ์ป์ ์ ์๋ ์ฅ์ (์์์ ์ธ๊ธ๋จ.)์ ๋๋ฌด๋๋ ๋ง๋ค.
Apple์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์ ๋ฐ์ ์ธ ๊ฒฝํ์ ๊ฐ์ ํ๋ ๋ฐ์ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๊ณ , ์ฌ๋ณผ์ ์ด๋ฅผ ๋์์ฃผ๋ ๊ฐ๋ ฅํ ์๋จ์ด ๋ ์ ์๋ค.
์์ ๊ฐ์ ์ด์ ๋ก Apple์ ์์คํ ๊ธ๊ผด์ธ San Francisco์ ์ํํ๊ฒ ํตํฉ๋๋๋ก ์ค๊ณํ ์์ด์ฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ SF Symbols์ ๋ง๋ค์ด๋์ต๋๋ค. SF Symbols๋ ํ์ดํฌ๊ทธ๋ํผ๋ฅผ ์ผ๋์ ๋๊ณ ๋์์ธ๋์์ต๋๋ค. SF Symbols๋ Weights, Scales, Outlined, Filled variants, Encapsulated Shapes, Alignments ๋ฑ์ ์กฐ์ ํ ์ ์๋ ๋ฉ์ง ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ค๋์ ์ด์ผ๊ธฐ
์ค๋์ ์ด๋ค ์ด์ผ๊ธฐ๋ฅผ ํด๋ณผ๊น์?
์ธ์ ์์๋ ํฌ๊ฒ 4๊ฐ์ง ๋ด์ฉ์ด ์ธ๊ธ๋ฉ๋๋ค.
- New symbols
- Rendering modes
- Variable Color
- Unified annotations
๋ค์์ ๋ด์ฉ์ ํ๋์ฉ ์ดํด๋ณด๋๋ก ํ์ฃ .
New Symbols
4,000์ด๋ผ๋ ์ซ์๊ฐ ๊ณผ์ฐ ๋ฌด์์ ์๋ฏธํ ๊น์? ๊ธฐ์กด์ ์ฌ๋ณผ๊ณผ ๋๋ถ์ด 700๊ฐ ์ด์์ ์๋ก์ด ์ฌ๋ณผ์ด ์ถ๊ฐ๋๋ฉด์ SF Symbols๋ ์ด์ 4,000๊ฐ ์ด์์ ๊ณ ์ ํ ๊ธฐํธ๋ฅผ ๊ฐ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋์์ต๋๋ค. (์์ฐ!! ๐ฒ)
์ด๋ฒ์ ์ถ๊ฐ๋ ๊ฒ๋ค ์ค์์ ํฌ๊ฒ 5๊ฐ์ง์ ์นดํ ๊ณ ๋ฆฌ์ ์ง์คํ๋ฉด ์ข์ ๊ฒ ๊ฐ์๋ฐ์.
5๊ฐ์ ์๋ก์ด ์นดํ ๊ณ ๋ฆฌ
- Camera & Photos
- Accessibility
- Privacy & Security
- Home
- Fitness
์๋ฌด๋๋ ์ด๋ ๊ฒ ์๋กญ๊ฒ ์ถ๊ฐ๋๋ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๋ณด๋ฉด ๊ทธ ํด์ Apple์ด ์ด๋ค ๋ถ์ผ์ ๊ด์ฌ์ ๊ฐ์ง๊ณ ์๋์ง ์ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
Rendering Mode (๋ ๋๋ง ๋ชจ๋)
์ด๋ฏธ 4๊ฐ์ง์ ๋ ๋๋ง ๋ชจ๋๋ ๊ธฐ์กด์ ์๊ฐ๋์๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ๊ฒ๋ง ๋ณด๊ณ ๋์ด๊ฐ๋๋ก ํ ๊ฒ์. (๊ทผ๋ฐ ์ ๋ ์ด๋ฒ์์์ผ ์กฐ๊ธ ์ฐพ์๋ดค์ด์..ใ )
SF Symbol 3์์ ์๊ฐ๊ฐ ๋์๋ 4๊ฐ์ง์ ๋ ๋๋ง ๋ชจ๋๋ฅผ ์ดํด๋ณผ๊ฒ์. SF Symbol 3์์๋ ๋ ๋๋ง ๋ชจ๋๋ฅผ ์ง์ํ๊ธฐ ์ํด์ ์ฌ๋ณผ์ path๋ฅผ primary, secondary, tertiary ์ ๊ฐ์ ๋ณ๊ฐ์ ๋ ์ด์ด๋ก ๊ตฌ์ฑํฉ๋๋ค. (๋ ์ด์ด๊ฐ ์กด์ฌํ๋ค๋ ํฅ๋ฏธ๋กญ์ฃ ?)
path๋ผ๊ณ ํจ์ ์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์๋ฐ์. ๊ทธ๋ฌ๋๊น Symbol์ ๋ชจ๋ path ๋๋ ๋๋จธ์ง ๋ถ๋ถ(๋น์ด ์๋ ๊ณต๊ฐ)์ผ๋ก ๋๋์ด์ง๊ณ ์์ด์.
์ด์ด์ ๊ธฐ์กด์ 4๊ฐ์ง Mode๋ฅผ ๋จผ์ ๋ณด๊ณ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๋ด์ฉ์ ๋ฌด์์ธ์ง ๋ณด๋๋ก ํ ๊ฒ์.
- Monochrome (๋จ์)
- Hierarchical (๊ณ์ธต)
- Pallete (ํ๋ ํธ)
- Multicolor (์ฌ๋ฌ ๊ฐ์ง ์)
์ด๋ป๊ฒ ์ฐจ์ด๊ฐ ์๋์ง ๊ถ๊ธํด์ ์ค์ต์ ์งํํด๋ดค์ต๋๋ค. ๊ฐ๋จํ๊ฒ Playground์์ SwiftUI๋ฅผ import ํด์์ Live View๋ก ๋ณด๋๋ก ํ ๊ฒ์.
1. Monochrome (๋จ์)
์ฌ๋ณผ์ ํ ๊ฐ์ง ์์์ ์ง์ ํ๋ค๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค. path๋ฅผ ์ง์ ํ ์์์ผ๋ก ๋ ๋๋ง ํ๋ ๊ฑด๋ฐ์. ๊ทธ๋ฅ ํต์ผ๋ ์์์ ์ ์ฉํ๋ค๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
struct ContentView: View {
var body: some View {
Image(systemName: "thermometer.sun.fill")
.symbolRenderingMode(.monochrome)
.foregroundStyle(.red, .yellow, .green)
.font(.system(size: 150))
.frame(width: 400, height: 400, alignment: .center)
.background(Color.gray)
}
}
PlaygroundPage.current.setLiveView(ContentView())
2. Hierarchical (๊ณ์ธต)
๋ญ๊ฐ ๊ณ์ธต์ด ๋๋์ด ์์ ๊ฒ ๊ฐ์ง ์๋์? ์์์ ์ฌ๋ณผ์ path๋ฅผ ๋ณ๊ฐ์ ๋ ์ด์ด๋ก ๊ตฌ๋ถํ๋ค๊ณ ํ๋๋ฐ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ ์ด์ด์๊ฒ ๋ค๋ฅธ ์์ ๋ถ์ฌํ๊ฒ ๋ฉ๋๋ค. ์ ํํ ๋งํ๋ฉด ๋ถํฌ๋ช ๋(opacity)๋ฅผ ์กฐ์ ํด์ ๊ณ์ธต์ ์๊ณ๋ฅผ ๋ํ๋ ๋๋ค. ํ ๊ฐ์ง ์์(์ฒซ ๋ฒ์งธ ์ง์ ํ ์์)์ ๋ฐ๋ผ ์ด๋ค ์์์ผ๋ก ๋ ๋๋ง ๋ ์ง๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค.
struct ContentView: View {
var body: some View {
Image(systemName: "thermometer.sun.fill")
.symbolRenderingMode(.hierarchical)
.foregroundStyle(.red, .yellow, .green)
.font(.system(size: 150))
.frame(width: 400, height: 400, alignment: .center)
.background(Color.gray)
}
}
PlaygroundPage.current.setLiveView(ContentView())
3. Pallete (ํ๋ ํธ)
Pallete๋ ์ฉ์ด์์ ๋๊ปด์ง๋ฏ์ด ์ง์ ํ ์์์ ๋ชจ๋ ์ ์ฉ์์ผ์ค ๊ฒ ๊ฐ์๋ฐ์. ์ค์ ๋ก ๊ทธ๋ ์ต๋๋ค. ๋ ์ด์ด ๋น ํ๋์ ์์์ ์ฌ์ฉํด์ ๋ ๋๋ง์ ํด์ฃผ๋๋ฐ์. ๋ง์ฝ์ 3๋จ๊ณ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ฌ๋ณผ์ ๋ ๊ฐ์ง ์์๋ง ์ง์ ํ๋ฉด secondary, tertiary ๋ ์ด์ด๋ ๋์ผํ ์์์ ์ฌ์ฉํ๊ณ , 2๋จ๊ณ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ฌ๋ณผ์ ์ธ ๊ฐ์ง ์์์ ์ง์ ํ๋ฉด ๋ ๋ฒ์งธ ์์๊น์ง๋ง ์ ์ฉ๋ฉ๋๋ค.
struct ContentView: View {
var body: some View {
Image(systemName: "thermometer.sun.fill")
.symbolRenderingMode(.palette)
.foregroundStyle(.red, .yellow, .green)
.font(.system(size: 150))
.frame(width: 400, height: 400, alignment: .center)
.background(Color.gray)
}
}
PlaygroundPage.current.setLiveView(ContentView())
4. Multicolor (์ฌ๋ฌ ์์)
๋ง์ง๋ง ๋ ๋๋ง ๋ชจ๋๋ ์์คํ ์ ์ํด ์ ์๋ ์์์ด ๋์จ๋ค๊ณ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ๊ฒ์ ์๋๋ฐ์. ๊ฐ๊ฐ์ ์ฌ๋ณผ์ ์๋ฏธ์ ๋ง๊ฒ ์ ์ ํ ์์์ ์ด๋ฏธ Apple์ด ์ ํด๋์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฃผ์ํ ์ ์, ์ผ๋ถ Multicolor Symbols๋ ๋ค๋ฅธ ์์์ ๋ฐ์ ์ ์๋ ๋ ์ด์ด๊ฐ ํฌํจ๋์ด ์๋ค๊ณ ํ๋ค์!
struct ContentView: View {
var body: some View {
Image(systemName: "thermometer.sun.fill")
.symbolRenderingMode(.multicolor)
.foregroundStyle(.red, .yellow, .green)
.font(.system(size: 150))
.frame(width: 400, height: 400, alignment: .center)
.background(Color.gray)
}
}
PlaygroundPage.current.setLiveView(ContentView())
Automatic Rendering
์, ๊ทธ๋ผ ๋์ด์์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๋ ๋๋ง ๋ชจ๋๋ฅผ ์ดํด๋ณผ๊น์? ๊ธฐ์กด์๋ ๋ ๋๋ง ๋ชจ๋๋ฅผ ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก Monochrome์ด ์ง์ ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌํด(SF Symbols4)๋ถํฐ๋ ๊ฐ ์ฌ๋ณผ์ ๊ณ ์ ํ ํน์ฑ์ ๊ฐ์ฅ ์ ๊ฐ์กฐํ๋ ๋ ๋๋ง ๋ชจ๋๋ฅผ ์๋์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค.
์นด๋ฉ๋ผ ๋ ์ฆ ๋ฐ ํํฐ ์ฌ๋ณผ
ํด๋น ์ฌ๋ณผ์ ์๋ ๋ ๋๋ง ๋ชจ๋๋ฅผ ์ค์ ํ๋ฉด Monochrome์ด ์๋๋ผ Hierarchical ๋ชจ๋๋ก ์ค์ ๋ฉ๋๋ค.
SharePlay
SharePlay ์ฌ๋ณผ ์ญ์ ์๋ ๋ ๋๋ง ๋ชจ๋๋ฅผ ์ค์ ํ๋ฉด Monochrome์ด ์๋๋ผ Hierarchical ๋ชจ๋๋ก ์ค์ ๋ฉ๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ์๋ ์๋ ๋ ๋๋ง ๋ชจ๋๊ฐ ์ข์ ๋ณด์ ๋๋ค. ๊ทธ๋ฌ๋ ํญ์ ์ปจํ ์คํธ๋ฅผ ์ ๋ฐ์ ธ์ผ ํฉ๋๋ค.
AirPods Pro์ ๊ธฐํธ์ ๊ฒฝ์ฐ ์๋ ๋ ๋๋ง ๋ชจ๋๋ฅผ ์ ํํ๋ฉด Hierarchical ๋ชจ๋๋ก ๋ ๋๋ง์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์ ์์(์ปจํ ์คํธ)์์๋ ์ฌ๋ณผ์ด ๋งค์ฐ ์๊ณ ๋ฐฐ๊ฒฝ๊ณผ ๋๋น๊ฐ ๋ฎ์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ์ด๋ฐ ํน์ ์ปจํ ์คํธ์์ ๊ท ์ผํ ๋ชจ์์ ์ํด์ ๋ ๋๋ง ๋ชจ๋๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํ๋ ์์ ์ด ํ์ํ ์ ์์ต๋๋ค.
ํญ์ ๊ฐ์ฅ ์ ํฉํ ๋ ๋๋ง ๋ชจ๋๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
Variable Color
์์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋งค์ฐ ์ค์ํ ์์์ ๋๋ค. ์์์ ์์กดํ๋ ๋ ๊ฐ์ง ์ํฉ์ ์ดํด๋ณผ๊น์?
- ๊ฒฝ๋ก ๋๋ ๋ชจ์์ด ๋ค์ํ ์์ค์ ๊ฐ๋๋ฅผ ์ ๋ฌํ ๋
- ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณํํ๋ ์ํ๋ฅผ ์ ๋ฌํ ๋
์์ ๊ฐ์ ์ํ๋ฅผ ํํํ๊ณ ์ ๋ฌํ๊ธฐ ์ํด ์์์ ์์กดํฉ๋๋ค.
์ฌํด๋ถํฐ๋ ๊ฐ๋ณ ์์์ด๋ผ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๋์ ํ์ฌ ์์ ์ฌ์ฉ์ ํ๋ํ๊ณ ์์ต๋๋ค.
์ฌ๋ณผ์ ๋ฒกํฐ ๊ฒฝ๋ก๋ฅผ ๋ ์ด์ด๋ก ์ ๋ ฌํ๊ณ ํด๋น ๋ ์ด์ด๋ฅผ ์์ฐจ์ ์ผ๋ก ๊ตฌ์ฑํ์ฌ ์ด๋ฌํ ๋ ์ด์ด๋ฅผ ํตํด ์์์ ๋ฐฐํฌํ๋ ์๋ก์ด ๋ฐฉ๋ฒ์ ๋ง๋ค์์ต๋๋ค. ์ด๋ฅผ ํตํด์ ๋ค์ํ ์์ค์ ๊ฐ๋๋ฅผ ์ ๋ฌํ ์ ์๊ฑฐ๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ํ์ค๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
ํ ๊ฐ์ง ์ค์ํ ์ ์ ๊ฐ๋ณ ์์์์ ์ผ๋ถ ์ฌ๋ณผ์๋ ์ํ์ค์ ์ฐธ์ฌํ๋ ๋ชจ๋ ๊ฒฝ๋ก๊ฐ ์์ง๋ง ๋ค๋ฅธ ์ฌ๋ณผ์ ๊ฒฝ์ฐ ์ผ๋ถ path๋ง opt-in ํ ์ ์์ต๋๋ค.
์ด ์ฌ๋ณผ์ ๊ฒฝ์ฐ ์ฌ๋ณผ์ ํ์๋ ์ํ์ ๋๊ธฐํ ๋๋ ๋ด์ฅ ์ฌ๋ผ์ด๋์ ์์ ์ด๋ฃน๋๋ค. ์ฌ๋ผ์ด๋๋ฅผ ์ ์ดํจ์ผ๋ก์ ๋ณผ๋ฅจ์ ๋์ด๊ฑฐ๋ ๋ฎ์ถ ์ ์๋๋ฐ์. ์ด์ ๋ฐ๋ผ์ ์ํ์ค๊ฐ ๋ณํํฉ๋๋ค.
๋ฎ์ ๋ณผ๋ฅจ, ์ค๊ฐ ๋ณผ๋ฅจ, ๋์ ๋ณผ๋ฅจ ์ด 3๊ฐ์ง path๋ ๋ ์ด์ด๋ก ๊ตฌ์ฑ๋๋ฉฐ ๊ฐ๋ณ ์์ ๊ธฐ๋ฅ์ ์ ํํ๊ฒ ๋ฉ๋๋ค. ์ฌ๊ธฐ์ ์ค์ํ ์ ์ ๊ฐ๋ณ ์์์ ๊น์ด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ฒ์ด ์๋๋ผ ์ผ๋ จ์ ๋จ๊ณ ๋๋ ๋จ๊ณ๋ฅผ ๊ฐ์กฐ ํ์ํ๊ธฐ ์ํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค.
Unified Annotations
*์ฃผ์ ๋ฌ๊ธฐ๋ผ๋ ์ฉ์ด๊ฐ ์์ง ์ฌ์ค ์ ์๋ฟ์ง๋ ์์ต๋๋ค.
์ฌ์ฉ์ ์ปค์คํฐ๋ง์ด์ฆํ ์ฌ๋ณผ์ ๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์๋๋ก ํตํฉ๋ ๋ ์ด์ด ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์๋๋ก ํฉ๋๋ค. ์ธ์ ์ ์์๋ก๋ ๋ฒ ์ดํน, ์ปต์ผ์ดํฌ์ ๊ด๋ จ๋ ์ฌ๋ณผ์ด ์์๋ก ๋ฑ์ฅํฉ๋๋ค. ํตํฉ ๋ ์ด์ด(Unified Layer) ๊ตฌ์กฐ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ฌ๋ณผ์ ์ฃผ์์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ ์๋๋ฐ์. (์ฃผ์์ ์ถ๊ฐํ๋ค๋ ์๋ฏธ๊ฐ ๋ค๋ฅธ ์ฌ๋ณผ๊ณผ ๋ญ๊ฐ ํฉ์น๋ค๋ ์๋ฏธ๊ฐ ์๋๊น ์ถ์ต๋๋ค.)
๋ณธ๊ฒฉ์ ์ผ๋ก ์ฃผ์ ๋ฌ๊ธฐ๋ฅผ ์์ํ๊ธฐ ์ ์๋ ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ด ๋ช ๊ฐ์ง ์์ต๋๋ค.
1. ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ์ฌ z์์์ ๊ฐ์๋ฅผ ํ์ธํด์ผ ํฉ๋๋ค. (z ์์๋ z์ถ์ ๋ฐ๋ผ ๊ธฐํธ์์ ๊ฒฝ๋ก์ ์์๋ฅผ ๋ํ๋ ๋๋ค.)
2. ๊ทธ๋ฆฌ๊ธฐ(Draw), ์ง์ฐ๊ธฐ(Erase) ๊ฐ๋ ์ ์์์ผ ํฉ๋๋ค. ์ด๋ ๋ ์ด์ด๊ฐ ๋ ๋๋ง๋๋ ๋ฐฉ์์ ์ ์ํ๋ ๋ฐ์ ์ฌ์ฉ๋ฉ๋๋ค.
์์ ๊ทธ๋ฆผ์ ์ดํด๋ณด๋ฉด ์คํ ํ๋ก์คํ , ์ปต์ผ์ดํฌ ๋ฒ ์ด์ค, ๋ฐฐ์ง ๊ทธ๋ฆฌ๊ณ ํ๋ฌ์ค์ ๋ชจ์์ผ๋ก ๋ ์ด์ด๋ฅผ ๊ฐ๊ฐ ๋ถ๋ฆฌํ์ต๋๋ค. ๋ ์ด์ด์ ํ์ํ ๋งํผ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์คํ ์ฅ์(1 layer)์ ์ธ ๊ฐ์ ๋ค๋ฅธ ๊ฒฝ๋ก๊ฐ ์๋ ๋ ์ด์ด๋ก ์ ์๋๊ณ ๋๋จธ์ง ๋ ์ด์ด๋ ๊ฐ๊ฐ ํ๋์ ๊ฒฝ๋ก๋ก ์ ์๋ฉ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ชจ์์ ๊ตฌ์ฑํ๋ฉด ๋ชจ๋ ๋ ๋๋ง ๋ชจ๋์ ๋ํด ํ๋์ ๊ตฌ์กฐ์ ์ฃผ์์ ๋ฌ ๋ ๋ ๋ง์ ์ ์ฐ์ฑ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด์ ํ์์ ๋ฐ๋ผ ์ฌ๋ณผ์ ์ปค์คํฐ๋ง์ด์ฆํ๋๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๊ฐ ํ ๊ณณ์ ์์ต๋๋ค.
์ด์ ๋ชจ๋ ๋ ๋๋ง ๋ชจ๋์ ์ฃผ์์ ๋ฌ ์ ์๋๋ฐ์.
๋จผ์ Multicolor๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฏธ ๋ชจ์์ ์ค์ ์ด ๋์ด ์์ผ๋ฏ๋ก ์์๋ง ์ ํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์๋์ ๊ฐ์ด ์์์ ์ค์ ํ๋ค๊ณ ์๊ฐํด๋ณผ๊น์? ํ๋ฌ์ค ๋ฐฐ์ง์ ๊ฒฝ์ฐ ๊ธฐ์กด์ ์ ์ํ ๊ฒ๊ณผ ๋์ผํ ๋ก์ง์ ๋ฐ๋ฆ ๋๋ค.
Multicolor๋ ์ ์ ์ํ์ผ๋ฏ๋ก ๋๋จธ์ง Hierarchical, Pallete, Monochrome ๋ชจ๋๋ฅผ ์ ์ํ๋ฉด ๋ฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ ์ ์ํ ์ ์์ต๋๋ค. ์ฌ์ค ๋ง์ง๋ง ์ฃผ์ ์ธ Unified Annotation์ ์์ง ์ดํด๊ฐ ์ ๊ฐ์ง ์์ต๋๋ค. ์ฌ๋ณผ์ ์ ์ํด๊ฐ๋ ๊ณผ์ ์ ๋ณด์ฌ์ฃผ๊ณ ์๊ธฐ๋ ํ๋ฐ ํ๋ฆ์ ์ดํด๊ฐ ๋์์ผ๋ ๋ด์ฉ์ ๋ช ํํ๊ฒ ์ ๋ฆฌํ๊ธฐ๋ ์กฐ๊ธ ์ด๋ ต๋ค์. ์กฐ๊ธ ๋ ์ ๋ฆฌ๋ฅผ ํด๋ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
'๐ iOS & Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฒ๋ค ์์ด๋, Bundle Identifier (2) | 2022.07.10 |
---|---|
[iOS] UISwitch์ offTintColor ๋ณ๊ฒฝํ๊ธฐ (3) | 2022.07.06 |
[iOS] ์กฐ๊ฑด๋ฌธ(1), if๋ฌธ์ ๋ํ ๊ณ ์ฐฐ (5) | 2022.02.10 |
[iOS] UIWindow (0) | 2021.11.07 |
[iOS] CollectionView Cell ๋๋น ๋์ ์ผ๋ก ์กฐ์ ํ๊ธฐ (8) | 2021.10.28 |