분류 전체보기
-
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..
-
Codility - TriangleAlgorithm 2022. 11. 15. 16:22
아래 문제는 코딜리티에서 제공하는 Sorting > Triangle의 문제입니다🧑🏻💻 문제 제시 더보기 An array A consisting of N integers is given. A triplet (P, Q, R) is triangular if 0 ≤ P A[R], A[Q] + A[R] > A[P], A[R] + A[P] > A[Q]. For example, consider array A such that: A[0] = 10 A[1] = 2 A[2] = 5 A[3] = 1 A[4] = 8 A[5] = 20 Triplet (0, 2, 4) is triangular. Write a function: public func solution(_ A ..
-
removeArrangedSubview(_:) VS removeFromSuperview()iOS 2022. 11. 14. 17:59
안녕하세요. 그린입니다🍏 이번 포스팅에서는 오랜만에 UIKit을 다뤄볼까해요! 주제는 하위 구성된 뷰를 제거하는 방법으로 removeArrangedSubview(_:)와 removeFromSuperview()가 있습니다. 이 두 메서드를 알아보며 차이를 알아보겠습니다🙌 우선 그럼 removeArrangedSubview(_:)부터 알아보죠! removeArrangedSubview 배열된 상위 뷰의 스택 배열에서 파라미터로 넘어온 뷰를 제거합니다. func removeArrangedSubview(_ view: UIView) 선언은 위와 같이 해당 메서드에 상위 뷰로부터 제거할 하위 뷰를 인자로 넣어주면 됩니다. 해당 상위 뷰에서는 이제 더이상 제거되는 뷰의 위치 및 크기 등을 관리하지 않아요. 그렇지만 아예..
-
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이 비슷한 기능을 해준다는 인..
-
Codility - MaxProductOfThreeAlgorithm 2022. 11. 9. 12:24
아래 문제는 코딜리티에서 제공하는 Sorting > MaxProductOfThree의 문제입니다🧑🏻💻 문제 제시 더보기 A non-empty array A consisting of N integers is given. The product of triplet (P, Q, R) equates to A[P] * A[Q] * A[R] (0 ≤ P < Q < R < N). For example, array A such that: A[0] = -3 A[1] = 1 A[2] = 2 A[3] = -2 A[4] = 5 A[5] = 6 contains the following example triplets: (0, 1, 2), product is −3 * 1 * 2 = −6 (1, 2, 4), product is 1 ..
-
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를 스크롤하기 위해 프록시라는것과 함께 작업할 수 ..