swiftUI
-
SwiftUI - TabViewSwiftUI 2022. 4. 9. 12:38
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI ๋ด์์ ๊ธฐ๋ณธ ์ ํ์์ ์ ๊ณตํ๋ TabView์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ ์ฃผ๋ก ์ฑ์ ๊ตฌ์ฑํ๋ค๋ณด๋ฉด ํ๋จ์ ํ / ์ค์ ๋ฑ ๋ฉ๋ด๋ก ๊ฐ ์ ์๋ TabBar์ ๋ํด ๊ผญ ๊ตฌ์ฑํ๊ณค ํฉ๋๋ค. ์ด๋ป๊ฒ ๋ณด๋ฉด ์๋ ์ฑ์ ์ฐพ๊ธฐ๊ฐ ๋ ์ด๋ ค์ธ์ ๋์ ๋๋ค๐ฅฒ ๋ฐ๋ก ์๋ฐ๊ฑฐ์! ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์ ์ด๊ฑธ ๊ตฌ์ฑํ ์ ์๋ TabView์ ๋ํด ์์๋ณด๊ณ ๊ตฌํํด๋ณผ๊ป์ใ ใ TabView? ๊ณต์๋ฌธ์๋ฅผ ํํด์ณ๋ณด์ฃ ! ํญ๋ทฐ์ ์ ์๋ ๋ํํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์์๋ฅผ ์ฌ์ฉํด ์ฌ๋ฌ ํ์ ๋ทฐ ๊ฐ ์ ํํ ์ ์๋๋ก ํ๋ ๋ทฐ์ ๋๋ค. ์ฆ ๋ค๋ค ํํ ์๊ณ ์๋ ํญ๋ฐ์ ํญ๋ชฉ๋ค์ ํด๋ฆญํด ๋ทฐ๋ฅผ ์ ํํ ์ ์๊ฒ ํด์ฃผ๋๊ฒ์ ๋๋ค. TabView ์ ์ธ struct TabView where SelectionValue : H..
-
DarkModeiOS 2022. 3. 31. 20:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ๋คํฌ๋ชจ๋์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ๋คํฌ๋ชจ๋? ๋คํฌ๋ชจ๋๋ iOS 13 ์ด์์์ ํํ๋ค ๋งํ๋ ์ค์ ์์ ๋๋ฐ์ด์ค ์์ฒด๋ฅผ ๋คํฌ๋ชจ๋๋ก ์ค์ ํ๋ฉด ์ ์ฒด์ ์ผ๋ก ์ด๋์ด ํ ๋ง์ ์์คํ ์ ์ฑํํ๋๋ก ํ ์ ์์ต๋๋ค. ํน์ง์ ์ด๋์์ง๋๋งํผ ๋ ๋ง์ ์๋๊ฐ์ ์ฌ์ฉํด ์ ๊ฒฝ ์ปจํ ์ธ ๋ค์ ๋ ๋ถ๊ฐ์์ผ์ค๋๋ค. ์ฑ์์ ๋คํฌ/๋ผ์ดํธ ๋ชจ๋ ๋์ ์ ์ฃผ์์ 1. ์ฑ๋ ๋คํฌ๋ชจ๋์ ๋ฐ๋ผ ์ ๋ฐ์ํด์ผํฉ๋๋ค. 2. ๋ผ์ดํธ/๋คํฌ ๋ชจ๋์์ ๋์์ธ์ด ์๋ํ๋ฐ์ ๊ฐ์ด ์ ์์ ์ธ์ง ํ ์คํธํด์ผํฉ๋๋ค. 3. ๋๋น ๋ฐ ํฌ๋ช ๋ ๋ฑ ์ ๊ทผ์ฑ ์ค์ ์ ์กฐ์ ํ์๋์๋ ๋คํฌ๋ชจ๋์์ ๊ฐ๋ ์ฑ์ด ์ข์์ง ํ์ธํด์ผํฉ๋๋ค. ๋คํฌ๋ชจ๋ ์์ ๊ด๋ จ ๋คํฌ๋ชจ๋์ ์์์ ์ ํํ ๋๋ ์ค์ํ ์ฌํญ๋ค์ด ์กฐ๊ธ ์์ต๋๋ค. 1. ์์คํ ๋ฐฐ๊ฒฝ์ ์ ํธ - ๋คํฌ๋ชจ๋๋ ..
-
SwiftUI - @State / @Binding / @StateObject / @EnvironmentObjectSwiftUI 2022. 3. 21. 20:15
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ ํฌ์คํ ์ ์ด์ด SwiftUI์์ ๊ตฌ์กฐ์ฒด ๋ด๋ถ์์ ๊ฐ์ ๋ณ๊ฒฝํ์ฌ ๋ฐ์ํด์ฃผ๊ฑฐ๋ ์ ์ญ์ ์ผ๋ก ๊ฐ์ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ํด์ฃผ๋ ๊ทธ๋ฐ ์น๊ตฌ๋ค์ธ ํ์ดํ์ ์ธ์น๊ตฌ ์ฆ, @State, @Binding, @StateObject, @EnvironmentObject์ ๋ํด์ ํ์ตํด๋ณด๊ฒ ์๋๋ค๐๐ป ์ฐ์ ํ๋์ฉ ์ฐจ๋ก๋๋ก ์งํํด๋ณด๊ฒ ์ต๋๋ค๐ @State ์ ์๋ฅผ ๋จผ์ ๋ณด๋ฉด, SwiftUI์์ ๊ฐ์ ์ฝ๊ณ ์ธ ์ ์๋ ์ ํ์ ์ด๋ ธํ ์ด์ ์ ๋๋ค. @frozen @propertyWrapper struct State ์ญ์ propertyWrapper์ด๊ณ ๊ตฌ์กฐ์ฒด์ ๋๋ค. SwiftUI์์ ์ฐ์ ๋ทฐ๋ ๊ตฌ์กฐ์ฒด์ ๋๋ค. ์ฆ, ๋ด๋ถ ๊ฐ์ ๋ณ๊ฒฝํด์ค ์ ์๋๋ฐ ์ด @State๋ฅผ ์ด์ฉํด ๋ณ๊ฒฝํด์ค ์ ์์ต๋๋ค. ๋ํ ๊ตฌ์กฐ์ฒด์ด๊ธฐ..
-
Combine - ObservableObject / @Published / @ObservedObjectCombine 2022. 3. 17. 21:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ObservableObject๋ผ๋ ํ๋กํ ์ฝ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ถ๊ฐ๋ก ์ด์ด์ ธ์ @Published์ @ObservedObject๋ ๋ณด์์ฃ ! ์์ฆ ๊ฐ์ธ์ ์ผ๋ก ๋ง์ด ๋ฐ๋น ์ ธ์ ๋ธ๋ก๊ทธ๋ฅผ ์ํํ๊ฒ ๋ ๊ฒ ๊ฐ์.. ๋ง์ ์์ ๊ณต๋ถํ๊ณ ํฌ์คํ ํ๋๊ฒ๋ณด๋ค ์งง๊ฒ ํ์ตํ๊ณ ํฌ์คํ ํ๋ฉด์ ๊พธ์คํจ์ ์์ง ์๋ ์ ๋ต์ผ๋ก ๋น๋ถ๊ฐ ๊ฐ๋ คํฉ๋๋ค! (์๊ทธ๋ฌ๋ฉด ์ด๋ ์๊ฐ ๋๋ฒ๋ฆด๊ฒ ๊ฐ์....) ๊ทธ๋์ ์ด๋ฒ์ ์ค๋นํ ์ฃผ์ ๋ ์ด์ฌ๋ถํฐ ์ฐพ์! ๋๋์ผ๋ก ์ ๋ฒ์ Combine์ ๋ํ์ ๊ฐ๋ ๋ค์ ๊ณต๋ถํ๋ฉด์ ์ฐ๊ฒฐ๋์ด ObservableObject๋ผ๋ ์ฃผ์ ๋ฅผ ์ ์ ํ๊ฒ ๋์๋ค์ใ ใ ๊ทธ๋ผ ์ ์ํ๊ฒ ํ์ตํ๊ณ ์น๊ณ ๋น ์ ธ ๋ด ์๋ค๐ ObservableObject? ๊ณต์๋ฌธ์์ ์ ์๋ ๊ฐ์ฒด ๋ณ๊ฒฝ ์ ๋ฐฉ์ถํ๋ ๊ฒ์์๊ฐ ์..
-
Custom StepperSwiftUI 2022. 1. 28. 19:53
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ปค์คํ ํ Stepper๋ฅผ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค๐๐ป SwiftUI์์ ๊ธฐ๋ณธ ๋ด์ฅ๋์ด์๋ Stepper๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ..! NavigationLink๋ฅผ ํตํด ๋ค์ด๊ฐ ๋ทฐ์์๋ ์์ธ์ง Stepper์ ๋์์ด ๋ค์ ์ด์ํฉ๋๋ค. ์๋ฅผ๋ค์ด ์ด์ง ๋๋ฅด๋ฉด ์๋๊ณ ๊พธ์ฑ ๋๋ฌ์ฃผ์ด์ผ ๋ณ๊ฒฝ๋๋ฉฐ ๋ฒํผ Hold ์ก์ ์ ํตํด์๋ ๋ฐ๋ณต์ ์ผ๋ก ์นด์ดํ ์ด ์์ฌ๋ผ๊ฐ๋ใ ใ ๊ด๋ จ ๊ฐ์ฆ๋ค์ ์ฐพ์๋ณด๋ SwiftUI์์ NavigationLink์ ํ์๋ ๋ฒ๊ทธ ๊ฐ๋๋ผ๊ตฌ์.. ๋ค๋น๊ฒ์ด์ ๊ด๋ จํด์ ์์ง๊น์ง ์ฌ๋ฌ ๋ฒ๊ทธ๊ฐ ์๋๋ฐ ๊ทธ์ค ํ๋์ธ๊ฒ ๊ฐ์ต๋๋ค๐คฌ ๊ทธ๋์..! ์ง์ Stepper๋ฅผ ๋์ผํ๊ฒ ๊ตฌํํด๋ดค์ต๋๋ค. Stepper ๊ตฌํํ๊ธฐ import SwiftUI struct ContentView: View { @St..
-
SwiftUI - multilineTextAlignment & lineLimit & lineSpacingSwiftUI 2022. 1. 19. 20:43
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ multilineTextAlignment๊ณผ lineLimit ๊ทธ๋ฆฌ๊ณ lineSpacing์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ multilineTextAlignment? SwiftUI๋ก ๋ทฐ๋ฅผ ๊ตฌ์ฑํ๋ฉฐ ํ ์คํธ๋ฅผ ๋ฃ์ด์ฃผ๋ ๋ทฐ ๊ตฌ์ฑ์ด ์์ฃผ ๋ง์ต๋๋ค. ๊ทธ๋ด๋ ๊ฐํ์ด ์ผ์ด๋ ๋๊ฐ ์์ด์. ๊ทธ๋ ๊ฐํ ์ ์ด๋์ชฝ์์ ์ ๋ ฌ์ ์ค๊ฒ์ธ์ง ์ฆ, ๊ฐํ ์์ ์์น๊ฐ ์ด๋์ธ์ง ์ ํด์ค์ผํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. (SwiftUI ํธ๋ฆฌํ๊ฒ ์์ฃผ ๋ง์.. ์ข์ใ ) multilineTextAlignment(_:) ์ฐ์ ์ด๋ค๊ฑด์ง ๊ณต์๋ฌธ์๋ฅผ ํตํด ์ ์๋ถํฐ ๋ด๋ณผ๊ป์! ๊ทธ์ ์ ๋ฑ ์ง์ญํด๋ ๋๋์ด ์ค์์ฃ ? "์ฌ๋ฌ๋ผ์ธ์ ํ ์คํธ ์ ๋ ฌ" ๋ค.. ์์ฃผ ์ฝ๊ณ ์์ฃผ ๊ฐ๋จํ ํฌ์คํ ์ด ๋ ๊ฒ ๊ฐ๋ค์๐ "Sets the alignment of ..
-
swipeActionsSwiftUI 2021. 12. 23. 20:20
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ์ฌ์ฉ๋๋ swipeActions์ด๋ผ๋๊ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป swipeActions? ์ ๋ค๋ค ์๋ ๊ฐ์ ๊ธฐ๋ฅ์ ์์ฃผ์์ฃผ ์น์ํ์ค๊ฑฐ์์. ๋ฆฌ์คํธ์์ ๋ชฉ๋ก์ ์ค์์ดํ ํ์๋ ๋ญ ์ ์ฅํ๊ฑฐ๋ ์ญ์ ํ๊ฑฐ๋ ๋ฑ๋ฑ ๋ฉ๋ชจ์ฑ์์ ๋๋ฌด ๋ง์ด ์ฌ์ฉ๋๊ณ ๊ทธ๋ฟ๋ง์๋๋ผ ๊ฑฐ์ ๋ชจ๋ ์ด๋ฐ ๊ตฌ์ฑ์๋ ํ์์ ์ธ ๊ธฐ๋ฅ์ด์ฃ ? ์ค๋ ์์๋ณด๊ณ ๋ฐ๋ผ ๊ตฌํํด๋ณผ๊ฑด ๋ฐ๋ก ์ ๊ธฐ๋ฅ์ ๋๋ค! ๊ณต์๋ฌธ์์ ๊ฐ๋ ์ ์๋ฅผ ๋ณด๊ฒ ์ต๋๋ค. ๋ฆฌ์คํธ์ ํ์ ์ค์์ดํ ์ ์ปค์คํ ํ ๋ก์ง์ ํ์ธ ์ ์๋ค๊ณ ๋์ต๋๋ค. swipeActions์ ํ๋ผ๋ฏธํฐ ์ฐ์ ํด๋น ๋ฉ์๋์ ์ ์๋ ์ ์ธ์ ๋ณด๊ฒ ์ต๋๋ค. func swipeActions( edge: HorizontalEdge = .trailing, allowsFullSwipe: ..
-
Code ScannerLibrary 2021. 12. 7. 21:35
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Code Scanner์ ๋ํด ๋ฐฐ์๋ณด๋ คํฉ๋๋ค๐๐ป ์์ฆ ์ฝ์๊ตญ์ ์ฐธ QR ์ฝ๋๋ ๋ง์ด ์ฌ์ฉ๋์ฃ . ๊ทธ๋์ ์ฝ๋ ์ค์บ์ ํ ์ ์๋๋ก ์ฝ๋ ์ค์บ๋์ ๋ํด์ ๊ฐ๋จํ ๋ฐฐ์๋ณด๋ คํด์! ์ฐ์ ์ ๋ Paul Hudson๋์ด ๋ง๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Code Scanner ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค๐๐ป https://github.com/twostraws/CodeScanner GitHub - twostraws/CodeScanner: A SwiftUI view that is able to scan barcodes, QR codes, and more, and send back what was found. A SwiftUI view that is able to scan barcodes, ..