- 어제 만들던 프로토타입의 프로토타입을 마져 만들었다.
- FCM을 이용해 푸시를 도입했다. 거의 설명대로 하니까 문제 없었는데,
application(_:didRegisterForRemoteNotificationsWithDeviceToken:)
구현을 안하고 넘어가서 조금 헤맸다. 스위즐링을 안하는 경우에만 구현하면 되는 줄 알았는데 문서를 다시 보니 SwiftUI 프로젝트의 경우 하라고 명시되어 있었다. Supabase도 궁금해졌다.
- 픽플즈(UIKit 사이드)에서 현재 만드는 화면에 바텀 시트가 포함되어 있어서 최근에 삽질을 했다.
- 모달로 present하면 될 줄 알았는데 이렇게 하니 탭바를 모달이 가리는 문제가 있었다.
- UIPanGestureRecognizer를 이용해 커스텀 뷰에 대한 패닝 제스쳐에 따라 오토레이아웃 제약조건이 변하도록 했다.
private let bottomSheetView = CustomerMapBottomSheetView() private var bottomSheetViewTopConstraint: NSLayoutConstraint? override func viewDidLoad() { // 생략 let panGesuture = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture)) bottomSheetView.handle.addGestureRecognizer(panGesuture) } @objc private func handlePanGesture(_ gesture: UIPanGestureRecognizer) { guard let bottomSheetViewTopConstraint = bottomSheetViewTopConstraint else { return } bottomSheetViewTopConstraint.constant = bottomSheetViewTopConstraint.constant + gesture.translation(in: bottomSheetView.handle).y gesture.setTranslation(.zero, in: bottomSheetView.handle) // * }
- 핸들러에서 높이를 바꾸고 setTranslation을 호출해 제스쳐의 현재 오프셋을 초기화해주는 걸 놓쳐서 초반에 많이 헤맸다.
- 이렇게 하지 않으면 이전 값이 누적되어 실제 패닝 한 거리보다 버텀 시트의 높이가 훨씬 높거나 낮아진다.