快速收集视图单元格的高度和宽度
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 高度?