快速收集视图单元格的高度和宽度

Posted

技术标签:

【中文标题】快速收集视图单元格的高度和宽度【英文标题】:collection view cell Hight and width in swift 【发布时间】:2017-08-11 07:20:16 【问题描述】:

集合视图有多个图像工作正常。它是这样显示的

但我想这样展示

这是集合视图单元的代码

 let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
 layout.sectionInset = UIEdgeInsets(top: 10, left: 0, bottom: 20, right: 0)
 let width = UIScreen.main.bounds.width
 layout.itemSize = CGSize(width: width/2 , height: width/2 )
 layout.minimumInteritemSpacing = 0
 layout.minimumLineSpacing = 0
 collectionView!.collectionViewLayout = layout

【问题讨论】:

【参考方案1】:

只需实现一些UICollectionViewDelegateFlowLayout 方法即可获得UICollectionViewCells 的正确大小和间距。

示例:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize

    let cellSize = CGSize(width: (collectionView.bounds.width - (3 * 10))/2, height: 120)
    return cellSize


func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat

    return 10


func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets

    let sectionInset = UIEdgeInsetsMake(10, 10, 10, 10)
    return sectionInset

只需根据您的要求更改大小和间距值即可。

【讨论】:

【参考方案2】:

在你的视图控制器上添加这个方法

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize 
        return CGSize(width: ((self.view.frame.size.width/2) - 10), height: 255)
    

【讨论】:

【参考方案3】:

试试,

collectionViewCellImageView.contentMode = .scaleToFill

【讨论】:

【参考方案4】:

您可以尝试为集合视图设置单元格和行的最小间距并实现波纹管委托

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

【讨论】:

以上是关于快速收集视图单元格的高度和宽度的主要内容,如果未能解决你的问题,请参考以下文章

当前视图中单元格的快速高度

给定具有多行标签的集合视图单元格的宽度,如何获得首选的 AutoLayout 高度?

更改集合视图中每个第三个单元格的宽度

如何用CSS 定制表格单元格的宽度和高度

更改 UICollectionView 单元格 X 位置 - 快速

设置单元格的宽度和高度