전체 글19 Custom Navigation 전환 애니메이션 앱스토어를 보면 이런 멋진 애니메이션들로 화면이 present 되거나 push 되는 것을 볼 수 있습니다. 이런 애니메이션은 어떻게 만들 수 있을까요 그냥 pushViewController를 하게되면 이런 모습이 나오죠. 이걸 이렇게 바꿔보겠습니다. 앱스토어에 비해 단순하지만, 이해를 위해 간단히 만들어보겠습니다. 여기서 우리는 크게 두가지를 해주면 됩니다. 1. 메인 ViewController를 Navigation의 Delegate으로 만들고 Navigation한테 Animator 넘겨주기 2. 넘겨줄 Animator 구현하기 Navigation은 화면을 push 하거나 pop 할 때 자신의 delegate한테 animator를 요구하게 됩니다. 그리고 이때 nil이 넘어온다면 위에서 본 기본 애니메이.. 2022. 12. 6. FireStore로 채팅 1표시 사라지게 하기 채팅을 구현 중에 상대가 메세지를 읽으면 1을 사라지게 하고 싶었습니다. FireStore를 사용해 구현 중인데, 간략하게 그림으로 설명해보겠습니다. 이렇게 유저는 Messages에 대해 Listener를 달아두어서 메세지가 오면 snapshot을 받게 됩니다. 그리고 이때 LastRead Collection에서 자신의 문서를 찾아 시간을 업데이트 합니다. 이때 상대방은 내 문서를 Listen하고 있습니다. 이런식으로 말이죠. 이렇게 snapshot을 받았다는 것은 상대방이 채팅을 읽었다는 뜻이 되므로 그에 맞게 로직들을 동작해주면 됩니다. 2022. 12. 6. CollectionView Custom Layout CollectionView를 사용하다 보면, Flow나 Compositional로는 구현하기 복잡한 레이아웃을 만들어야 하거나, 혹은 여러 방향으로 스크롤해야 하는 레이아웃을 만들어야 할 때도 있습니다. 이럴 때는 Layout을 Custom 하는 게 더 쉽거나 유일한 방법인데요, UICollectionViewLayout을 Subclassing해서 구현할 수 있습니다. 그러면 우리는 이 안에서 두가지 작업을 해주면 됩니다. 1. 스크롤 가능한 content 영역 지정하기 2. 셀과 뷰들에 대한 attribute objects 제공하기 attribute object는 셀이나 보충 뷰의 레이아웃을 처리할 때 필요한 속성들을 가지고 있습니다. frame, bounds, center, alpha 등 이를 이용해서.. 2022. 12. 5. Dynamic Height Cell 만들기 - CollectionView + CompositionalLayout 최근 프로젝트를 진행하면서 Dynamic 하게 Cell의 높이를 바꾸고 싶은 경우가 생겼는데, 해결하기까지 삽질을 많이 한 것에 비해 해결법이 간단해서 기록으로 남겨보려 합니다. CollectionView 만들기 일단 이번글에서는 Compositional Layout을 사용해서 CollectionView를 만들겠습니다. Layout 만들기 func createLayout() -> UICollectionViewCompositionalLayout { let item = NSCollectionLayoutItem( layoutSize: .init( widthDimension: .fractionalWidth(1), heightDimension: .estimated(1) ) ) let group = NSCollec.. 2022. 11. 30. 이전 1 2 3 4 5 다음