我编写的函数返回UICollectionView
的单元格大小。
fileprivate func getCellSize(with row: Int) -> CGSize {
let percentage: CGFloat = row == 0 ? 0.8 : 0.2
let width = self.collectionView?.frame.width
let height = self.collectionView?.frame.height
let expectedWidth = width! * percentage
let expectedHeight = height! * 0.5
return CGSize(width: expectedWidth, height: expectedHeight)
}
这个功能工作正常,但它有一个小问题,它与它的接缝四舍五入。因为我收到的布局没有完全覆盖细胞,因为它是预期的。
iPhone 6仿真器的功能结果如下:
0:ROW =(533.60000000000002,187.5)
1:ROW =(133.40000000000001,187.5)
实际结果:
预期结果:
答案 0 :(得分:2)
怎么样
if let frameWidth = self.collectionView?.frame.width {
let row0Width = Int(Double(frameWidth) * 0.8)
let otherWidth = frameWidth - row0Width
let expectedWidth = row == 0 ? row0Width : otherWidth
// ...
}
避免四舍五入问题?