Dev/고민과 삽질의 기록들🤔22 [삽질] 클래스의 확장성 개선(protocol 의존성 주입: any) Trouble Shooting (Action나누면서) 기존 상황 import Foundation public typealias CompleteBottomSheetAction = ((DidBottomSheetActionType) -> Void) protocol BottomSheetAction { func sendAction(_ action: DidBottomSheetActionType) func cancel() var completeAction: CompleteBottomSheetAction? { get } } 위와 같이 Action 프로토콜을 정의하고 해당 프로토콜을 정의하는 아래와 같은 클래스가 있다. import Foundation final class RuleBottomSheetAction: Bot.. 2023. 6. 1. [삽질] Infinite Carousel 구현해보기 + auto scrolling(Timer) Infinite Carousel 심화과제의 티빙화면의 상단에 위치한 스크롤되는 화면을 구현과정을 정리해서 남겨놓고자 합니다 ! 화면의 특징을 먼저 살펴보면 좌우로 스크롤되면서 무한정 스크롤 됨. (마지막에서 첫번째, 첫번째에서 마지막으로 갈 때도 마찬가지) 자동으로 일정시간이 지나면 화면이 스크롤 됨. 이렇게가 있습니다. 핵심 구현 아이디어 데이터소스를 활용해서 데이터를 넣기 위해 collectionView를 활용하고 스크롤뷰가 스크롤이 끝난 시점에 scrollView의 setContentOffset메서드를 통해서 contentOffset.x좌표를 이동시켜주면서 화면을 전환시켜줄 예정입니다. 데이터 세팅 4개의 아이템이 있다고 가정. -> [1, 2, 3, 4] 첫번째 아이템에서 마지막으로 갈 때 () .. 2023. 5. 8. [삽질] 상단 Custom TabBar 구현 전체적인 뷰 설계하기 CollectionView & CollectionView ?? 🤔 상단 탭바만 보면 옆으로 스와이프를 하면 화면이 넘어가는 것을 볼 수 있다. 그리고 횡스크롤이 가능해야한다. 탭 이동시에 indicatorbar의 넓이 및 위치가 글자에 맞게 조정된다. 여기서 처음에 든 생각은 맨아래에 CollectionView를 깔고 TabBar도 CollectionView로 만들고 TabBar를 움직일 때 Cell을 넘기는 방식으로 생각했다. 인디케이터바의 넓이 및 위치를 구현하는데도 용이하다고 판단했다. 그런데 구현 중에 모두 동일한 콜백으로 이벤트가 들어오는데 일일히 분기처리하는 것이 깔끔하지 않다고 생각했다. 아니면 더 나은 방법이 있었을지는 음 CollectionView & PageView.. 2023. 5. 1. [삽질] BottomSheet 구현 중 시행착오 + 해결과정 (PanGesture, CGAffineTransform) 바텀시트를 구현하면서 겪언던 시행착오를 기록하고 어떻게 해결했는지 그 방법을 정리해보자. 초기방법 처음에 바텀시트뷰을 아래에 붙인다음에 높이를 Snapkit의 updateConstraint를 통해서 화면의 반까지 올리는 방법으로 해보니 아래 저장하기 버튼이 이상하게 남는 현상이 있었습니다..저장하기 버튼 뷰의 아래에 붙어있어서 화면에 처음 뜰 때부터 마지막에 사라지기 직전까지 남아있는 문제였습니다. -> 그럼 아예 화면 띄워놓고 아래에 숨겨놓고 시작하자 ! 초기화면 구성 - 왼쪽그림부터 보면 구상한 대로 바텀시트를 화면 아래에 숨깁니다. (top을 bottom으로) 그렇게 되면 바텀시트의 초기 origin값은 (0, 812: Iphone13 mini기준)가 될 것입니다. 해당 origin값은 이 후 CG.. 2023. 4. 16. 이전 1 2 3 4 5 6 다음 more