如何使用autolayout在iPhone 6和6 Plus中调整UICollectionViewCell的大小

时间:2015-01-16 09:50:20

标签: uicollectionview uicollectionviewcell

我在iOS项目中工作,我使用Autolayout和SizeClasses使用collectionView。使用自定义UICollectionViewCell xib。我在集合中重用自定义单元格在iPhone 5s中呈现两个单元格如下图像。 iPhone5s

问题是在iPhone 6和6 Plus中运行相同项目时,单元格没有调整大小,单元格之间有空间,您可以在下面看到它。 iPhone 6

当单元格的大小增加时在xib中调整大小并选择更新帧但不为iPhone 6调整大小。

其他SO帖子提供的答案没有帮助。

1 个答案:

答案 0 :(得分:0)

数学技巧回忆平方根 33号=物品数量!你可以从你的总物品数量中独立调整它,以便在屏幕上调整大小或更多或更少的物品!例如,iPhone 4上的/(Double(33))将分为4列中的33个项目和每行4个项目!在iPhone 6 Pluse中,您将看到相同的图片单元将按比例放大4列! 如果你输入1,你将在任何设备屏幕上获得一个单元全宽!

// ...........returning cell size based on device screen size by calculating square roo

        func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

            let deviceSize = UIScreen.mainScreen().bounds.size
            let flexSize = sqrt(Double(deviceSize.width * deviceSize.height) / (Double(33)))

                return CGSize(width: flexSize , height: flexSize)

        }