sookim-1

번호 : 007, 작성일자: 2024-03-18

2024.03.11 ~ 2024.03.17

📱 CollectionView Compositional Layout


Compositional Layout을 사용했을 때 생기는 상황 1. 셀 터치 - 셀이 터치되었을 때 UI를 변경하기 위해서 isSelected를 상속받아 값이 변경될 때 UI를 변경한다면 세밀한 커스텀동작을 구현할 수 없어서 cellForRowAt메서드에서 조건문 또는 플래그를 이용해서 선택된 셀과 선택되지 않은 셀들의 UI를 설정하는 방법을 고려할 수 있다. 2. 셀 Highlight - 셀이 터치되었을 때 Highlight처리가 되지 않아야 하는 경우가 있다. UITableViewCell에는 selectionStyle 을 none으로 설정할 수 있지만 UICollectionViewCell은 지원하지 않았다. 그래서, shouldHighlightItemAt메서드에서 해당 셀만 Highlight되지 않도록 수정했다. 해당 메서드에서 return false를 하면 셀이 터치가 안되는 이슈가 있다. 다른 방법을 고려해야 겠다. 3. 섹션 헤더 및 풋터 숨김처리 및 섹션 높이 관련 수정들 - 예를 들어, 셀이 터치되었을 때 섹션의 헤더 및 풋터 높이를 수정하거나 숨김처리를 하고 싶은 경우 collectionView를 reload하게되면 collectionViewLayout을 재설정하게 되는데 섹션 풋터를 숨기고싶다면 section.boundarySupplementaryItems 에 섹션헤더만 주입하거나 섹션 풋터 높이를 변경하고 싶다면 footer의 height를 변경하면 된다. → 즉, reload를 하는 경우 레이아웃을 재설정해주면 된다. 4. 태그목록 UI를 구현하는 경우 레이블 텍스트 짤림 이슈 - 태그목록 UI를 Compositional Layout을 사용하여 구현하는 경우 reload를 하게 되면 셀의 너비를 estimated로 너비를 계산하기 때문에 레이블의 텍스트가 짤리는 이슈가 발생했다. 해당 이슈를 해결하기 위해 임의의 텍스트를 prepareForReuse에도 추가하거나 레이아웃을 재설정시도등을 하였지만, 해결되지 않았다. 그래서 estimated의 계산방식을 찾아보려고 했지만 애플에서 정확히 어떤식으로 너비를 계산하는지 알려주지 않고 있는 것 같다. 추후 정확한 이슈 원인에 대해서 자세히 찾아봐야겠다.

🚀 UI 관련 이슈


  • SnapKit을 사용할 때 safeArea기준으로 constraints를 작성하면 updateConstraints를 사용할 수 없다.
  • 테이블뷰 섹션 풋터를 systemLayoutSizeFitting 을 사용하여 Height를 계산한 후 섹션 풋터 내부의 stackview를 superview의 bottom에 맞추면 stackview가 짤리는 이슈가 발생한다.
    • 테이블뷰 섹션 풋터 높이를 계산하는 systemLayoutSizeFitting 원리를 추후 자세히 찾아봐야겠다.

🙋🏻‍♂️ 기타 사항


  1. Bitbucket Pull Request목록에 STALE태그가 표시되었는데 확인해본 결과 PR이 평소보다 오래 열려있거나 최근에 업데이트 되지 않은 경우 표시된다고 한다.
태그: