UICollectionview
이 있고 열 수가 무작위로 변경됩니다. 열 개수가 변경 될 때마다 다음 함수를 호출합니다.열 개수가 변경되면 UICollectionView가 충돌 함
func setTheCollectionViewSize(){
if self.activeLockerList.count > 0 {
self.btnLockerDropdown.setTitle("Lockers Set \(self.activeLockerList[0].lockerId)", for: UIControlState.normal)
}
screenSize = UIScreen.main.bounds
screenWidth = screenSize.width
screenHeight = screenSize.height
//if the collection view layout is not invalidated then the app will crash
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.minimumInteritemSpacing = 0
layout.minimumLineSpacing = 0
//setting the collectionview size so there will be no white lines in the drawn boxes
var appropriateScreenWidth = Int(self.screenWidth)
while appropriateScreenWidth % Int(self.numberOfLockersPerColumn) != 0 {
appropriateScreenWidth = appropriateScreenWidth - 1
}
let itemWidth : CGFloat = CGFloat(appropriateScreenWidth)/self.numberOfLockersPerColumn
collectionViewWidthLocal.constant = CGFloat(appropriateScreenWidth)
layout.itemSize = CGSize(width: itemWidth, height: itemWidth)
print(self.numberOfLockersPerColumn)
print(screenWidth)
layout.minimumInteritemSpacing = 0
layout.minimumLineSpacing = 0
layout.sectionInset = UIEdgeInsets(top: 10.0, left: 0, bottom: 10.0, right: 0)
self.collectionView.collectionViewLayout.invalidateLayout()
self.collectionView.setCollectionViewLayout(layout, animated: false)
}
각 행의 셀 수가 증가하면 올바르게 작동합니다. 하지만 카운트가 줄었을 때 앱이 다운되는 경우 self.collectionView.setCollectionViewLayout(layout, animated: false)
self.collectionView.collectionViewLayout.invalidateLayout()
으로 콜렉션 뷰를 무효화하는 방법도 도움이되지 않습니다. 운 좋게도 시간과 시간을 보냈습니다. 미리 감사드립니다.
'self.collectionView.collectionViewLayout.invalidateLayout()'을 사용하면 도움이 될 것입니다. 그것은 이상하게 작동하지 않았다. 기다리고 커뮤니티의 답을 보도록하겠습니다. –
정확히 충돌이 발생합니까? 충돌 출력/오류 란 무엇입니까? – shallowThought