swiftUI
-
SwiftUI - LazyVGrid & LazyHGridSwiftUI 2022. 11. 24. 18:42
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서의 LazyVGrid와 LazyHGrid에 대해 알아보겠습니다🙌 우선 UIKit 세상에서는 CollectionView라는것이 있습니다. SwiftUI에서도 쉽게 컬렉션뷰라고 생각하면 됩니다. Grid라는 의미 자체는 2차원의 행과 열을 구성하는 레이아웃이라는 뜻을 내포합니다. 그럼 SwiftUI에서 Grid를 나타내는 LazyVGrid와 LazyHGrid를 하나씩 보시죠! LazyVGrid VStack과 같이 세로 즉, 열이 우선되게 뷰가 정렬되고 싸이는 컨테이너 뷰입니다. Lazy가 붙은 이유는 필요할때만 해당 SubView를 정렬해 생성하기에 Lazy가 붙었습니다. struct LazyVGrid where Content : View 선언은 위..
-
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를 스크롤하기 위해 프록시라는것과 함께 작업할 수 ..
-
TCA - IfLetStoreTCA 2022. 10. 11. 15:14
안녕하세요. 그린입니다🍏 이번 포스팅에서는 TCA에서의 IfLetStore라는 구조체에 대해 알아보겠습니다🙌 우선 오늘 포스팅될 내용은 전부 ComposableArchitecture에서 IfLetStore 정의 및 구현된 부분의 코드를 뜯어봤습니다. 해당 전체 코드가 궁금하신 분들은 아래 링크를 참고해주세요! https://github.com/pointfreeco/swift-composable-architecture/blob/main/Sources/ComposableArchitecture/SwiftUI/IfLetStore.swift GitHub - pointfreeco/swift-composable-architecture: A library for building applications in a cons..
-
SwiftUI - DisclosureGroup & OutlineGroupSwiftUI 2022. 9. 29. 10:24
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 Lists에 속해있는 타입인 DisclosureGroup & OutlineGroup에 대해 학습해보겠습니다🙌 우선 이 둘이 대략적으로 어떤건지 간단히 설명해볼께요. 단순하게 생각해서 접고 펼 수 있는 파일인 트리 구조의 형태를 가지게 할 수 있는 뷰라고 보면 됩니다. 이정도로만 설명해서는 감이 안오실 수도 있겠지만 실제로 아래 구현된걸 보면 바로 빡 아~ 이런거 할거에요😄 아..! 참고로 이 두가지는 SwiftUI라고 다 사용할 수 있는것이 아니고 iOS 14 이상에서만 제공합니다🕺🏻 그럼 이건 코드가 더 쉽게 이해될 수 있으니 바로 본론으로 가볼께요! DisclosureGroup? 제어의 상태에 따라 하위 컨텐츠를 표시하거나 숨길 수 있는 뷰입..