티스토리 뷰

안녕하세요. 오늘은 간단한 내용으로 작성해볼까합니다.

혹시 UICollectionView 를 사용하다가 Cell 사이즈가 안 바뀐적 있나요?

 

일반적으로 Cell 사이즈를 지정할때 아래 함수를 많이 쓰게 됩니다. (sizeForItemAt)

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let width = collectionView.frame.width
    let itemsPerRow: CGFloat = 2// 각 렬당 2개
    let widthPadding = 8 * (itemsPerRow + 1)
    let cellWidth = (width - widthPadding) / itemsPerRow
    return CGSize(width: cellWidth, height: 58)
}

여기까지는 대부분 많이 하시죠?

 

하지만 이렇게 만들어도 간혹 Cell 사이즈가 바뀌지 않는 경우가 있는데 

이 경우에는 보통 저는 아래 두가지를 안했을때 나타나더라고요. 

 

1. UICollectionViewDelegateFlowLayout 을 추가안해준 경우  

- 기본적으로 다른 건 자동으로 추가되지만 저 친구(?)는 따로 추가해주셔야 합니다. 

- 선언을 안하면 일부 코드가 작동을 안 할 수 있으니 주의해주세요 (주로 사이즈나 레이아웃 관련)

class ViewController: .... , UICollectionViewDelegateFlowLayout

2. Estimate Size 를 None 으로 지정 안한 경우 

- 이 설정을 안하면 자동으로 지정된 사이즈가 출력되기도 합니다.

- 자신이 원하는 Cell 사이즈가 있다면 반드시 Storyboard 에서 설정해주세요.

UICollectionView의 Storyboard를 확인해보세요!

오늘은 UICollectionView 를 사용할때 자주하는 실수(?)를 담아보았습니다.

처음 하시거나 익숙치 않으신 분들에게 조금이나마 도움이 되었으면 좋겠네요. 

 

그럼 오늘도 파이팅입니다. 

댓글