SwiftUI
-
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라는 파라미터가 존재합니다.이 파라미터는 단일 인스턴스 혹은 이 뷰에 드래그 가능한 데이터를 나타내는 Transferab..
-
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..
-
SwiftUI - compositingGroupSwiftUI 2024. 3. 28. 18:57
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 compositingGroup에 대해 알아보겠습니다 🙋🏻 compositingGroup? compositingGroup은 SwiftUI에서 사용되는 뷰 모디파이어로 iOS 13 이상, 즉 SwiftUI를 쓰는 환경이라면 다 적용해볼 수 있어요! 이름에서도 알 수 있듯이 뷰들을 합성된 그룹으로 합쳐 래핑해주는 역할을 가집니다. func compositingGroup() -> some View 정의는 요러합니다. 뷰를 반환하는 여느 뷰 모디파이어와 동일하니 어려울것이 없어요! compositingGroup은 뷰가 렌더링되기 전 해당 뷰의 상위 뷰들에서 발생하는 투명도 및 블렌드 모드같은 컴포지팅되는 효과들을 적용시켜줍니다. compositingGro..
-
SwiftUI - AppStorageSwiftUI 2024. 3. 7. 19:10
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI에서 사용되는 AppStorage에 대해 학습해보겠습니다 🙋🏻 이번 포스팅의 내용은 UserDefaults를 안다는 가정하에 진행하며, 내용은 짧습니다ㅎㅎ AppStorage? AppStorage는 UserDefaults로 부터 값을 반영하고 값 변경에 대한 뷰를 무효화하는 프로퍼티 래퍼로 사용되는 구조체입니다. iOS 14이후부터 사용할 수 있고 구현된 정의는 아래와 같습니다. 즉, 쉽게 생각하면 UserDefaults의 SwiftUI용이라고 보면 됩니다. @frozen @propertyWrapper struct AppStorage 기본적인 이니셜라이저 형태는 이러해요. init( wrappedValue: Value, _ key: String, ..
-
SwiftUI로 동적 뷰 레이아웃 구성하기SwiftUI 2024. 1. 18. 18:33
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI로 동적 뷰 레이아웃을 구성하는 방법에 대해 소개해볼까 합니다 🙋🏻 본격적으로 알아보기에 앞서 어떤걸 해보고 싶은지 한번 스포하고 갈께요! 요런 뷰를 구성해보려 하거든요! 😃 언뜻보기에는 간단해보이나, 세부 조건들이 있어요. 1️⃣ 해당 칩스(뱃지)에 들어간 Text의 길이만큼 칩스가 다 노출되어야함 2️⃣ 화면을 벗어나거나 짤리면 안됨 3️⃣ Text의 길이가 길어서 배치할 수 없으면 다음 행으로 이동하여 배치 4️⃣ 스크롤 없이 화면에 모두 노출해야함 이런 Text 길이에 따라 유동적으로 칩스 뷰를 배치하는 그런 구현을 해보려고 합니다! 여러분들이라면 이 뷰를 어떻게 구현하실것 같으신가요? 🤔 음... 그냥 LazyVGrid 적절히 잘 쓰면 되..