【发布时间】:2016-11-25 19:21:29
【问题描述】:
我制作了一个包含 144 个单元格的集合视图。我将它们设置为单选。我已经使用了一段时间的设置,但是任何实际正确显示单元格的设置都有这个问题,即两个特定单元格的大小始终是错误的。请注意,该问题仅在 iPad pro 上进行测试时才会发生。他们会经常在我无法复制的情况下调整大小,因为他们来回更改他们的图像给其他人。我尝试仅在绝对必要时调用 reloadData(),并在 indexPath 函数中调用重新加载单个单元格。我已经测试了我能想到的一切,以防止这成为一个问题。任何指向正确方向的指针将不胜感激!
这是我的代码:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! ChartViewCell
cell.setColor(colorArray[indexPath.section][indexPath.row])
cell.overlay?.image = cell.whichColor.toImage()
return cell
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 24
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 12
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionView, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
return 0
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
return UIEdgeInsetsMake(0, 0, 0, 0)
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let screenRect: CGRect = collectionView.bounds
let screenWidth: CGFloat = screenRect.size.width
let cellWidth: CGFloat = screenWidth / 24
//Replace the divisor with the column count requirement. Make sure to have it in float.
let size: CGSize = CGSizeMake(cellWidth, cellWidth)
return size
}
【问题讨论】:
标签: ios swift ipad uicollectionview uicollectionviewcell