swiftUI
-
UIPasteboard๋ฅผ ํตํ ํด๋ฆฝ๋ณด๋ ์ฌ์ฉํ๊ธฐiOS 2024. 5. 7. 18:49
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ UIPasteboard์ ๋ํด ์์๋ณด๊ณ ํด๋น ํด๋์ค๋ฅผ ์ฌ์ฉํด ์ค์ ํด๋ฆฝ๋ณด๋์ ํ ์คํธ๋ฅผ ์ ์ฅํ๊ณ ์ธ๋ถ ์ฑ์ด๋ ์ด๋์๋ ์ด ๊ณต์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด๋ณด๋๊ฒ์ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ , ์ด์ ํฌ์คํ ์์ PasteButton ์ปดํฌ๋ํธ๋ฅผ ํตํด ํ์ฌ ํด๋ฆฝ๋ณด๋์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ ํด๋ณด๋๊ฒ์ ์์๋ณธ์ ์ด ์์ด์. SwiftUI - PasteButton์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ PasteButton์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ๋ฆฌ๊ฐ ๋งฅ๋ถ์์๋ ์์ดํฐ์์๋ ํ ์คํธ๋ฅผ ๋ณต์ฌํ๊ณ ๋ถ์ฌ๋ฃ๋ ๊ธฐ๋ฅ์ ์์ฃผ ํํ๊ฒ ์ฌ์ฉํ๊ณ green1229.tistory.com ์ด๋ฒ์๋ ์กฐ๊ธ ๋ ๋์๊ฐ์, ๊ผญ ์ด ๋ฒํผ์ ํตํ ๋์์ด ์๋๋๋ผ๋ ํ์ฌ ๊ณต์ ํ ๋ฐ์ด..
-
SwiftUI์์ ์คํฌ๋กค ๋ทฐ ๋ด ์ปจํ ์ธ ์๋ ์ ์ดํ๊ธฐSwiftUI 2024. 5. 2. 18:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ์คํฌ๋กค ๋ทฐ ๋ด ์ปจํ ์ธ ์๋๋ฅผ ์์ดํ๊ฒ ์ ์ดํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๋จผ์ , ์ด์ ๊ด๋ จํ์ฌ ์ด์ ์ ์๋ ํฌ์คํ ์์ ScrollOffset์ ๊ฐ์งํ์ฌ ์ปจํ ์ธ ๋ณ ์์ดํ ์คํฌ๋กค ์๋๋ฅผ ๊ฐ์ง๋๊ฒ์ฒ๋ผ ๋ณด์ด๋๋ก offset์ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณธ์ ์ด ์์ด์! SwiftUI์์ ScrollOffset์ ๊ฐ์งํ๋ ScrollView ๊ตฌํํ๊ธฐ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก ์ปค์คํ ํ ScrollOffset ๊ฐ์ ๊ฐ์งํ์ฌ ์ฌ์ฉํ๋ ScrollView ๊ตฌํ์ ํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ SwiftUI์์ ๊ธฐ๋ณธ์ ์ธ ScrollView ์ปดํฌ๋ํธ๋ง์ผ๋ก๋ ์คgreen1229.tistory.com ์ด๋ฒ ํฌ์คํ ์ ํด๋น ์ด์ ..
-
SwiftUI onDrag & onDropSwiftUI 2024. 4. 29. 18:48
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ onDrag์ onDrop ๋ฉ์๋ ์ฌ์ฉ์ ๋ํด ์์๋ด ๋๋ค ๐๐ป ์ด์ ํฌ์คํ ์์ SwiftUI์ ๋๋๊ทธ ์ค ๋๋กญ์ ๊ตฌํํ๊ธฐ ์ํด์ draggable๊ณผ dropDestination์ ๋ํด ์์๋ณด๊ณ ์ ์ฉํด๋ดค์ด์!๊ทธ๋ฐ๋ฐ, iOS 16 ์ด์์์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๊ณ์ ๋ ์์์ด์. SwiftUI์์ Drag & Drop ์ ์ฉํ๊ธฐ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก Drag & Drop์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ , SwiftUI์์ draggable๊ณผ dropDestination์ด๋ผ๋ ๋ฉ์๋๊ฐ ์กด์ฌํด์.์ด๊ฑธ ์์๋ณด๊ณ ํ์ฉํด๋ณด๋ ค ํฉ๋๋ค!green1229.tistory.com ๊ทธ๋์ ์ด๋ฒ์๋ ๋น๊ต์ ์ฌ์ฉํ ์ ์๋ OS ๋ฒ์ ๋ ๋..
-
SwiftUI์์ Drag & Drop ์ ์ฉํ๊ธฐSwiftUI 2024. 4. 25. 18:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก Drag & Drop์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ , SwiftUI์์ draggable๊ณผ dropDestination์ด๋ผ๋ ๋ฉ์๋๊ฐ ์กด์ฌํด์.์ด๊ฑธ ์์๋ณด๊ณ ํ์ฉํด๋ณด๋ ค ํฉ๋๋ค! ๊ทธ๋ผ ๋ฐ๋ก ์~ ๐ซdraggableiOS 16์์ ๋ถํฐ ๋์จ ์ด ๋ฉ์๋๋ ๋ทฐ๋ฅผ ๋๋๊ทธ ์ค ๋๋กญ ๊ฐ๋ฅํ ์์ค๋ก ํ์ฑํ ์์ผ์ค๋๋ค. func draggable(_ payload: @autoclosure @escaping () -> T) -> some View where T : Transferable ์ ์๋ ์ด๋ฌํ๋ฉฐ, payload๋ผ๋ ํ๋ผ๋ฏธํฐ๊ฐ ์กด์ฌํฉ๋๋ค.์ด ํ๋ผ๋ฏธํฐ๋ ๋จ์ผ ์ธ์คํด์ค ํน์ ์ด ๋ทฐ์ ๋๋๊ทธ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ Transferableํ ๊ฐ์ ๋ฐํํ๋ ํด..
-
SwiftUI - PasteButtonSwiftUI 2024. 4. 22. 18:34
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ PasteButton์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ๋ฆฌ๊ฐ ๋งฅ๋ถ์์๋ ์์ดํฐ์์๋ ํ ์คํธ๋ฅผ ๋ณต์ฌํ๊ณ ๋ถ์ฌ๋ฃ๋ ๊ธฐ๋ฅ์ ์์ฃผ ํํ๊ฒ ์ฌ์ฉํ๊ณ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์ฑ์ ์ด๋ ํ ํ ์คํธ๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ ํ ๋ ๊ฐํน ๋ถ์ฌ๋ฃ๋ ๊ถํ์ ๋ํด ์ฌ๋ถ๋ฅผ ๋ฌป๋ ์ฐฝ์ ๋ณธ์ ์ด ์์๊ฑฐ์์. ์ด๋ ๋น ๋ฅด๊ฒ ๋ณต์ฌํด์ผํ๋ ์ํฉ์์ ์ข ์ข ๊ท์ฐฎ์์ ์ ๋ฐํ๊ธฐ๋ ํ๊ณ , ๋ํ ํ์ค๋ฒ ์ํธ๋ฅผ ๋์ ๋ถ์ฌ๋ฃ๊ธฐ ๋ฒํผ์ ์ ํํด์ผ ํ๋๊ฒ์ ์์ด ๊ฐ๋์ ๋ ํ๋์ค์ ๋์์ด ๋ ๋ฐ์ํ๋ ๊ท์ฐฎ๊ธฐ๋ ํ์ฃ ! ๊ทธ๋ฐ๋ฐ SwiftUI์ PasteButton์ ํ์ฉํ๋ฉด ์กฐ๊ธ ๋ ํธ๋ฆฌํ๊ฒ ๋ถ์ฌ๋ฃ๊ธฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ด์ ๐ ์ฌ์ค, ์์ฒญ๋๊ฒ ์ ์ฉํ๊ฒ ์ฐ์ผ๊ฒ ๊ฐ๋ค๊ณ ๋ ์๊ฐํ์ง ์์ง๋ง ์ด๋ฐ ๊ธฐ๋ฅ๋ ์๋ค๋๊ฑธ ..
-
SwiftUI์์ ScrollOffset์ ๊ฐ์งํ๋ ScrollView ๊ตฌํํ๊ธฐSwiftUI 2024. 4. 9. 18:01
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก ์ปค์คํ ํ ScrollOffset ๊ฐ์ ๊ฐ์งํ์ฌ ์ฌ์ฉํ๋ ScrollView ๊ตฌํ์ ํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ SwiftUI์์ ๊ธฐ๋ณธ์ ์ธ ScrollView ์ปดํฌ๋ํธ๋ง์ผ๋ก๋ ์คํฌ๋กค ๋ ์์น์ธ ScrollOffset์ ๊ฐ์งํ ์๊ฐ ์์ต๋๋ค. ์ด์ background๋ก GeometryReader๋ฅผ ํ์ฉํด์ ์ปค์คํ ํ๊ฒ ๊ตฌํํด์ค์ผํด์. ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์ ์ปค์คํ ํ scrollOffset์ ๊ฐ์งํ๋ OffsetObservableScrollView๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค! OffsetObservableScrollView ์ฐ์ , ๊ตฌํ๋ถํฐ ์ดํด๋ณด์์ฃ ! struct OffsetObservableScrollView: View { var axes: Axis.Set = ..
-
SwiftUI - ShareLinkSwiftUI 2024. 4. 5. 18:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ ShareLink์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฌ์ค ์์ ํฌ์คํ ์์ SwiftUI์์ ๊ณต์ ์ํธ๋ฅผ ์ํ ActivityView๋ฅผ ์ฌ์ฉํ๋๊ฒ์ ํ์ตํ์ ์ด ์์ต๋๋ค. ActivityView in SwiftUI ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ActivityView(์กํฐ๋นํฐ ๋ทฐ)๋ฅผ ๋์ฐ๋๊ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป SwiftUI๋ฅผ ํตํด ๊ตฌํ์ ํ๋ค ์ด๋ป๊ฒ ํ๋ฉด ์๋ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์ ์ green1229.tistory.com ์ด๋ฒ์ ํ ๊ฒ๋ ์ ActivityView๋ฅผ ๋์ฐ๋๊ฒ์ธ๋ฐ์. ์ฐจ์ด๋, ์ด์ ์ ํฌ์คํ ์์๋ SwiftUI์์ ์ง์ ์ ์ผ๋ก ์ง์ํ์ง ์์์, UIKit์ ActivityViewController๋ฅผ ์ฌ์ฉํ..
-
SwiftUI - blendModeSwiftUI 2024. 4. 1. 19:03
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ blendMode๋ผ๋ ๋ทฐ ๋ชจ๋ํ์ด์ด๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๋ฐ๋ก ์ด์ ํฌ์คํ ์ธ compositingGroup์ ๋ํด ๋ค๋ฃฐ๋ ์ฌ์ฉ blendMode๋ฅผ ํตํด ๊ฒน์ณ์ง๋ ์ปดํฌ๋ํธ๋ค์ ์๊ฐ ํจ๊ณผ๋ฅผ ๋ค๋ฃฐ ์ ์๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ์ด๋ฒ ํฌ์คํ ์์ ์ด blendMode๊ฐ ๋ฌด์์ธ์ง ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ์์๋ณด์์ฃ ! blendMode? ํผํฉ ๋ชจ๋๋ผ๊ณ ์ง์ญ์ด ๋๋ฉฐ ์ด๋ ํ ๋ทฐ๋ฅผ ๊ฒน์น๋ ๋ทฐ์ ํฉ์ฑํ๊ธฐ ์ํ ๋ชจ๋ ๋ฐฉ์์ ์ค์ ํ๋๊ฒ์ ๋๋ค. ์ฆ, ๊ฒน์ณ์ง๋ ๋ทฐ์ ๋ํด ์๊ฐ์ ํจ๊ณผ๋ฅผ ์ ์ดํ๋๊ฒ์ด์ฃ . iOS 13 ์ด์์ด๋ SwiftUI๋ฅผ ์ฌ์ฉํ๋ ๋ฏธ๋๋ฉ ํ๊ฒ ํ๊ฒฝ์ด๋ผ๋ฉด ๋ชจ๋ ์ด ๋ทฐ ๋ชจ๋ํ์ด์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. func blendMode(_ blendMode: Blend..