PLUB 개발 회고 (1)

이건준·2022년 12월 20일
0

오해하고있던 부분

1. 컬렉션 뷰 셀 사이즈에 대한 오해

  • 보통 위와 같은 디자인에서 UICollectionView를 이용하게 될때 dataSource메소드 중 하나인 sizeForItemAt함수의 리턴값으로 다음과 같이 코드를 많이 한다
return CGSize(width: (collectionView.frame.width / 4), height: (collectionView.frame.height / 3)
  • 매번 별 생각없이 4 혹은 3으로 나누게 되면 딱 알맞게 나누어져 너비와 높이를 할당하겠구나생각하였는데 프린트에 찍힌 값은 내 예상과 많이 달랐다

  • 당연한 결과이겠지만 / 연산자는 몫을 반환하지 내가 의도한 소숫점까지 완벽하게 나누어주지않는다

2. 컬렉션 뷰 셀 일정한 사이즈를 위한 팁

  • 다음도 앞서 첫번째 사진과 비슷한 이야기이다, 너비와 높이뿐만아니라 Inset값과 miniline, inter값까지 생각하여서 항상 다음과 같이 코드하였다
return CGSize(width: (collectionView.frame.width - 8 * 3))...
  • 보통 위처럼 inter혹은 line값을 전부 뺀 이후에 나누어주는 방법을 택하였는데 찾아보니 좀 더 보기에 깔끔해보이는 방법을 찾게 되었다
return CGSize(width: (collectionView.frame.width / 4) - 8 - 16, height: (collectionView.frame.height / 3) - 8 - 16)
  • 위처럼 그냥 원하는 갯수만큼 미리 나누어준 이후에 inter, line, inset값을 빼주면 보기에 깔끔해보이는것 같다

3. 테이블 뷰 헤더와 푸터 높이값 지정하기

  • grouped 스타일인 tableView를 생성하고보니 그룹마다 아랫단에 FooterView가 살짝씩보여 내가 의도한 디자인과 달라서 이를 없애고자하였다

  • 위 그림을 보면 Header 윗 부분에 조금씩 더 벌어져있는 모습을 확인할 수 있다

  • 이러한 부분을 없애기위해 FooterView의 높이를 0으로 지정도 해보고 UIView(frame: .zero)를 넣어보기도 했지만 내 의도와는 멀어져갔다

이때 !!!


  • tableHeaderView와 tableFooterView의 document를 확인해보니 nonzero value...

즉 tableHeaderView와 tableFooterView의 높이를 지정할땐 0이 아닌 다른 값으로 지정하라는 이야기이다, 또한 너비는 UITableView의 너비에 맞춰 디자인되게 된다

  • 심지어 0으로 높이값을 리턴할 경우에 의도와는 다르게 디폴트 높이인 44로 디자인될 수 있다

  • 여튼 위와 같은 이유로 이런 경우에 사용할 수 있는 값이 CGFloat에 leastNonzeroMagnitude이다, 이는 0과 가깝지만 0보다는 큰 수를 야기한다

tableView.sectionHeaderHeight
tableView.sectionFooterHeight

  • CGFloat.leastNonzeroMagnitude를 sectionHeaderHeight나 sectionFooterHeight에 사용가능

4. 테이블 뷰 왼편에 떨어진 seperator붙이기

  • 가끔 tableView를 보면 seperator가 오른쪽에는 SuperView의 오른쪽에 채워져있지만 왼쪽은 SuperView의 왼쪽과 살짝 떨어져있다

  • 이같은 경우에 seperatorInset값의 left를 0으로 지정해주면 해결된다

0개의 댓글