我正在开发一个填字游戏应用程序,但是当我计算UICollectionView的每个itemSize时,我总是会丢失一些东西。我得到的iPhone SE尺寸正确,但iPhone XR的尺寸错误。我在做什么错了?
func setLayout() -> UICollectionViewFlowLayout {
let layout = UICollectionViewFlowLayout()
layout.itemSize = getCellSize()
layout.minimumInteritemSpacing = 0
layout.minimumLineSpacing = 0
layout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
return layout
}
func getCellSize() -> CGSize {
let width:CGFloat = self.view.frame.width/CGFloat(crossWordData[0].count)
let height:CGFloat = (self.view.frame.height - TitleView.frame.height)/CGFloat(crossWordData.count) - cellsBorderWidth
//cellsBorderWidth = 1.2
let cellSize = CGSize(width:width , height:height)
return cellSize
}
答案 0 :(得分:0)
这是因为终止于显示底部。新的iPhone(X,Xs,Xs Max,Xr)在底部放置了“原始手势”。因此,对于您的计算,CollectionView的内容大于CollectionView,因为CollectionView的底部约束等于安全区域底部约束,对于新iPhone,该约束高于显示底部。所以当您需要宽度和高度而不是这个
self.view
称呼这个
let width:CGFloat = self.view.frame.width/CGFloat(crossWordData[0].count)
let height:CGFloat = (self.view.frame.height - TitleView.frame.height)/CGFloat(crossWordData.count) - cellsBorderWidth
答案 1 :(得分:0)
最终,这就是我更改代码的方式-
let width:CGFloat = self.view.frame.width/CGFloat(crossWordData[0].count)
let height:CGFloat = self.view.frame.height*0.85/CGFloat(crossWordData.count)
在屏幕布局中,收藏夹视图的高度为85%