ios - 如何在所有设备中使用 swift4 在 CollectionView 中显示三列

标签 ios swift uicollectionview swift4 uicollectionviewflowlayout

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    
    
    if collectionView == self.collectionViewVideo {

        var collectionViewSize = collectionViewVideo.frame.size
        collectionViewSize.width = collectionViewSize.width/3.0 //Display Three elements in a row.
        return collectionViewSize
    } else {
        return CGSize(width: 60, height: 60)
    }
    
    
}

i want to show my collectionview like this

最佳答案

您还需要考虑空间。 空间是你的收藏 View 项目空间

以下代码有两个单元格和 20 个空格。 (我不是在写你需要的代码你应该自己做)

extension YourViewController : UICollectionViewDelegateFlowLayout {
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
        return 20
    }

    //--------------------------------------------------------------------------------

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
        return 20;
    }

    //--------------------------------------------------------------------------------

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width: ( self.collectionView.frame.size.width - 60 ) / 2,height:( self.collectionView.frame.size.width - 60 ) / 2)
    }

    //--------------------------------------------------------------------------------

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
       return UIEdgeInsetsMake(0, 20, 20, 20)
    }
}

这里60表示SPACE 20 CELL SPACE 20 CELL SPACE 20

关于ios - 如何在所有设备中使用 swift4 在 CollectionView 中显示三列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49795872/

相关文章:

ios - Swift 此类对于键错误不符合键值编码

Swift NSWindow 固定位置

ios - UICollectionView 在屏幕加载时自动滚动到底部

ios - 将 View Controller 添加到 UICollectionViewCell

ios - 如何使用 GPUImageHarrisCornerDetectionFilter 检测图像的角点

ios - 如何使用 iOS 版 Nuance Vocalizer、Speechkit 2 检测语音结束

ios - ViewControllers 什么时候调用 deinit?在移动到后台期间?在暂停期间?

ios - 应用因应用内购买而被拒绝

swift - NSFetchedResultsControllerDelegate 和 Swift 3 - 不调用 didChange 方法

xcode - 隐藏 UICollectionViewCell 中的 View