我有UICollectionViewController
,我想让其中的单元格具有随机大小,但保持纵横比为16:9。我希望宽度范围从100到200.这是我到目前为止所尝试的:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let widths = [100, 130, 200, 170, 150]
let number = widths[Int(arc4random_uniform(UInt32(widths.count)))]
return CGSize(width: number, height: (1080 / 1920) * number)
}
这不起作用,似乎所有单元格都具有相同的随机宽度。我希望他们都有不同的宽度。关于如何做到这一点的任何想法?
答案 0 :(得分:0)
你没有获得单元格的原因是单元格的高度始终设置为零,因为在计算高度(1080/1920)*数字时,(1080/1920)的整数结果将始终为零所以数字乘以0将最终为单元格的高度0。请尝试以下代码。
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let widths = [100, 130, 200, 170, 150]
let number = widths[Int(arc4random_uniform(UInt32(widths.count)))]
let height: Double = Double((1080 / 1920) * number)
let size = CGSize(width: number, height: Int(height))
return size
}