SwiftUI
-
SwiftUI - PinnedScrollableViews (a.k.a Sticky View)SwiftUI 2022. 11. 21. 17:33
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 PinnedScrollableViews라는것에 대해 알아보겠습니다🙌 이걸 알아보게 된 배경은 프로덕트의 기능을 구현하다 스크롤뷰로 감싸진 VStack에서 헤더 뷰를 구성하고 이 헤더 뷰는 스크롤을 아무리 내려도 상단에 고정시켜야 했습니다. 이에 LazyVStack 구현 시 파라미터에 pinnedViews라는 옵션이 있었어요. pin하니까 역시 무언가 고정해준다는 느낌을 확 받았고, 이 타입은 PinnedScrollableViews라는것을 알게되었습니다. 참고로 이러한 뷰를 Sticky View라고 부릅니다😊 그럼 우선 PinnedScrollableViews가 무엇인지 알아보고 적용해보시죠! PinnedScrollableViews? iOS 14에..
-
SwiftUI - Infinity Carousel View (feat. TCA)SwiftUI 2022. 11. 17. 15:51
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 Infinity Carousel View를 만드는 학습을 해보겠습니다🙌 UIKit에서는 쉽게 구현 가능한 Infinity Carousel View를 SwiftUI에서는 조금 까다롭더라구요 구현하기가😭 그래서 여러 레퍼들을 참고하여 TCA에 녹여 구현해봤습니다. 이번에는 설명은 크게 없고 코드로 보는게 좋을것 같아요! 전체적으로 Carousel Core/View가 있고 이를 사용하는 부분에서 Pullback하여 얹어줍니다. 제 코드에서는 Main에서 이를 해주고 있어요. 그럼 바로 코드 보시죠! Carousel View부터 보겠습니다. Carousel View 더보기 import ComposableArchitecture import SwiftUI..
-
SwiftUI - 조건에 따라 overlay 해주기 (feat. overlayIf)SwiftUI 2022. 11. 10. 14:13
안녕하세요. 그린입니다🍏 이번 포스팅은 SwiftUI에서 조건 분기에 따라 컨텐츠 즉 뷰를 overlay On/Off를 해줄 수 있는 ViewModifier를 만들어 보겠습니다. SwiftUI에서 overlay와 ZStack이라는 기능들을 활용해 중첩된 뷰를 나타내줄 수 있습니다. 혹시 해당 개념이 궁금하신분들은 아래 포스팅을 먼저 참고하여 overlay 부분이라도 어떻게 사용되는지 보고 오면 도움이 됩니다🙌 https://green1229.tistory.com/173 Overlay & ZStack 안녕하세요. 그린입니다🟢 이번 포스팅에서는 Overlay와 ZStack에 대해 학습해보겠습니다🧑🏻💻 왜 알아야하죠? SwiftUI로 뷰를 구성하다보면 Overlay와 ZStack이 비슷한 기능을 해준다는 인..
-
SwiftUI에서 TapGesture를 통해 현재 Position 구하기SwiftUI 2022. 11. 7. 10:32
안녕하세요. 그린입니다🍏 이번 포스팅은 SwiftUI에서 TapGesture를 통해 현재 탭된 위치, Position을 구해보려합니다🙌 SwiftUI를 사용하면서 아직 UIKit에서 제공해주는 기능들이 많이 미비할때가 아주 많습니다😭 점차 발전하고 있고 추후 아주 쓰기 쉬울거라고는 확신하고 있지만 당장 지금 SwiftUI로 선언형 API들로만 구현을 하기에는 분명 무리가 있다고 느껴집니다. 이번 주제인 사용자가 탭 위치를 구하는 기능도 SwiftUI에서는 기본적으로 간단하게 제공해주지 않았습니다. iOS 16에서 기존 onTapGesture의 기능이 확장되기 전까지는요..🕺🏻 그렇기에 오늘은 iOS 16 이후 onTapGesture를 아주 간단히 알아보고 그 다음 이전 OS에서 오늘의 주제인 TapGes..
-
SwiftUI - ScrollViewReaderSwiftUI 2022. 11. 3. 17:28
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 ScrollViewReader라는것에 대해 학습해보겠습니다🙌 SwiftUI를 사용하면서 ScrollView라는 View를 아주 많이 사용하게 됩니다. 이때 현재 스크롤링을 감지하거나 자동으로 스크롤되어 필요한 포인트로 위치 변경을 하는 등의 기능이 필요한 경우가 많죠🥲 이럴때 GeometryReader처럼 ScollView를 읽어 감지할 수 있는 녀석이 필요해요! 그럴때 사용하는것이 바로 이 ScrollViewReader입니다😀 그럼 자세히 어떤건지 알아보시죠🕺🏻 ScrollViewReader란? 위의 설명에서 조금 연장해보자면 ScrollViewReader는 하위 View, ScrollView를 스크롤하기 위해 프록시라는것과 함께 작업할 수 ..
-
SwiftUI - DisclosureGroup & OutlineGroupSwiftUI 2022. 9. 29. 10:24
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 Lists에 속해있는 타입인 DisclosureGroup & OutlineGroup에 대해 학습해보겠습니다🙌 우선 이 둘이 대략적으로 어떤건지 간단히 설명해볼께요. 단순하게 생각해서 접고 펼 수 있는 파일인 트리 구조의 형태를 가지게 할 수 있는 뷰라고 보면 됩니다. 이정도로만 설명해서는 감이 안오실 수도 있겠지만 실제로 아래 구현된걸 보면 바로 빡 아~ 이런거 할거에요😄 아..! 참고로 이 두가지는 SwiftUI라고 다 사용할 수 있는것이 아니고 iOS 14 이상에서만 제공합니다🕺🏻 그럼 이건 코드가 더 쉽게 이해될 수 있으니 바로 본론으로 가볼께요! DisclosureGroup? 제어의 상태에 따라 하위 컨텐츠를 표시하거나 숨길 수 있는 뷰입..
-
SwiftUI의 Text에서 verbatim 사용하기SwiftUI 2022. 9. 22. 09:48
안녕하세요. 그린입니다🍏 이번 포스팅은 아주아주 간단하고 실제 개발에 필요한 팁 하나를 포스팅 하려 합니다🙌 오늘 포스팅할 주제는 verbatim이라는겁니다. SwiftUI로 뷰 드로잉을 할 때 Text라는 UI 요소는 왠만해서는 사용됩니다. 그런데 verbatim이라는 조건으로 해당 Text를 이닛할 수 있다는건 잘 모르시는 분이 많습니다. 그럼 이걸 왜? 그리고 어떤 상황에서 사용해야 하는지 알아보겠습니다🕺🏻 verbatim? 저는 이 단어를 처음 들어봤습니다! 그래서 우선 파파고에서 무슨 뜻인지가 너무 궁금해졌어요. "글자 그대로" 라는 뜻을 가지네요. 즉 유추해보면 우리가 Text는 String을 표현하기 위해 사용하죠. 이 String은 문자열을 뜻하구요. 그렇기에 Text를 verbatim으로..
-
Redacted를 통한 뷰 모자이크SwiftUI 2022. 9. 8. 13:56
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 Redacted라는 View Modifier를 통해 뷰 및 내부 컨텐츠 요소들을 모자이크 하는 방법에 대해 학습하겠습니다🙌 우선 Redacted라는 뷰 모디파이어가 있다는것과 이런 단어를 처음 들어봤어요 저는.. 그래서 이 단어가 뭔 뜻인지를 알고 가야될것 같아서 파파고를 켰습니다! redacted? 끝? 이걸 원한건 아닌데... 뭐 수정이라는 워딩이 포함되어서 결국 뭔가의 변형이 일어나는구나 SwiftUI로 치면 View의 수정이 일어나는구나 생각만 해봅시다. 근데 뭔가 조금 찝찝해서 조금 더 찾아봤어요! redaction 원형을 찾다보니 redaction이라는 정보를 찾아봤습니다. https://en.wikipedia.org/wiki/Red..