-
Notifications
You must be signed in to change notification settings - Fork 1
[UIKit] UICollectionView의 Cell Dynamic Size 지정해주기
Ari edited this page Jul 24, 2022
·
1 revision
아이템의 키워드를 나타내는 Cell을 구현중이였는데, 문자열의 길이에 따라 Cell의 너비도 동적으로 조절되었으면 했다. 동적으로 사이징처리를 하는 방법을 찾아보았다.
구글링을 해서 찾다보면 너무 복잡한 방법들만 설명하고 있다.
좀 더 간단하고 쉬운 방법이 없나 찾던 와중에 내가 원하던 솔루션을 찾게 되었다.
해결방법
- Cell을 nib 파일을 만들어 구현한다.
- 그리고 UICollectionView의 flowLayout중 Item Size를 자동으로 맞출 수 있도록 해주었다.
private lazy var collectionView: UICollectionView = {
let flowLayout = UICollectionViewFlowLayout()
flowLayout.scrollDirection = .horizontal
flowLayout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 20)
flowLayout.minimumInteritemSpacing = 20
flowLayout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize // 이 한줄이면 된다...!!
flowLayout.minimumLineSpacing = 20
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
collectionView.backgroundColor = .clear
collectionView.showsHorizontalScrollIndicator = false
collectionView.registerNib(KeywordCell.self)
return collectionView
}()
이렇게 해주면 셀 안의 Label 너비에 맞게 사이징 처리가 된다.
- [성능] 필터링 걸고 아이템을 체크했을 때 앱의 반응속도가 느려지는 현상
- [RxSwift] Cell에 ViewModel을 할당하여 바인딩 처리할 때 주의해야할 점
- [ARC] dismiss 혹은 popViewController 호출 이후에도 메모리 할당이 해제되지 않는 이유?
- [UIKit] CollectionView의 높이를 콘텐츠 높이에 따라 동적으로 레이아웃 설정하는 법
- [UIKit] UICollectionView의 Cell Dynamic Size 지정해주기
- [UIKit] Navagation title을 줄바꿈 할 수는 없을까?
- [UIKit] Progress Bar의 높이를 변경하는 방법
- [UIKit] 왜 네비게이션 타이틀이 Large가 아닌 small로 나오는 걸까?
- [Xcode] LaunchScreen.storyboard에 배경색을 커스텀색상을 사용했는데, 다크모드가 작동하지 않는 현상
- [Xcode] 실제 디바이스로 앱을 테스트 하던 도중 발생한 문제