Swift 3 collectionView 如何设置间距。

Posted

技术标签:

【中文标题】Swift 3 collectionView 如何设置间距。【英文标题】:Swift 3 collectionView how to set spacing. 【发布时间】:2018-04-26 23:18:10 【问题描述】:

    如何将 3 个单元格居中?它在左边。

    如何在每个单元格的所有边设置相同的间距?

    显示未找到结果的第二个单元格。你如何使它居中并占据整个屏幕?现在它在左上角被切断了。

【问题讨论】:

这个查询解决了吗?如果是,请通过接受或发布您使用的答案来关闭线程 【参考方案1】:

你需要使用collectionView flowLayout

let width = UIScreen.main.bounds.size.width

//MARK:- Collection View Flow Layouts
extension HomeVC : UICollectionViewDelegateFlowLayout
    
    //MARK: Setting size of cell
    public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
    
        return CGSize(width: width/3-16, height: width/3-16)
    

    //MARK: Setting space Around Corners of Cells
    public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets
    
        return  UIEdgeInsetsMake(8, 8, 8, 8)
    

    //MARK: Setting space between two sections
    public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
    
        return 0
    

    //MARK: Setting Space between two Cels
    public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat
    
        return 8
    

故事板设计

输出:

【讨论】:

【参考方案2】:

你也可以这样使用:

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

输出:

希望这会有所帮助。

【讨论】:

以上是关于Swift 3 collectionView 如何设置间距。的主要内容,如果未能解决你的问题,请参考以下文章

使用Swift 3单击collectionView单元格内的项目时如何导航另一个视图控制器

如何在 swift 3 中的 tableview 单元格中添加带有自定义视图的 collectionView?

如何检查哪个collectionview是不是在swift中滚动

Swift - 如何在具有多个部分的 collectionView 上执行 BatchUpdates

如何在 Swift 中使用宽度约束将 Xib 加载到 CollectionView?

SWIFT 3:将不同的声音文件数组匹配到 CollectionView 中的每个部分