【发布时间】:2015-03-05 07:11:29
【问题描述】:
我已经实现了一个 UICollectionView,单元格大小是 w90 h90。当我在 iPhone 6 上运行它时,我得到了单元格之间的适当间距,但是当我在 iPhone 5s 上运行它时,我得到了更多单元格之间的间距。 我的问题是如何根据设备屏幕尺寸更改单元格大小,假设如果单元格大小为 w80 h80,我在 iPhone 5s 上也能得到正确的结果。我现在正在做的是
override func viewWillAppear(animated: Bool) {
var scale = UIScreen.mainScreen().scale as CGFloat
println("Scale :\(scale)")
var cellSize = (self.collectionViewLayout as UICollectionViewFlowLayout).itemSize
println("Cell size :\(cellSize)")
imageSize = CGSizeMake(cellSize.width * scale , cellSize.height * scale)
println("Image size : \(imageSize)")
}
// sizeForItemAtIndexPath
func collectionView(collectionView: UICollectionView,layout collectionViewLayout: UICollectionViewLayout,sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
{
return imageSize!
}
iPhone 6 上的结果:
iPhone 5s 上的结果
Objective-C / Swift 都适合解决问题。 谢谢。
【问题讨论】:
-
使用以下方法 collectionView(_:layout:sizeForItemAtIndexPath:) 并根据屏幕定义单元格大小
标签: ios xcode6 uicollectionview