如何在 Collection 视图中为每个单元格添加 edgeInsets -Swift

Posted

技术标签:

【中文标题】如何在 Collection 视图中为每个单元格添加 edgeInsets -Swift【英文标题】:How to add edgeInsets for each cell in Collection view -Swift 【发布时间】:2017-03-14 12:48:07 【问题描述】:

我正在尝试创建一个自定义单元格,每个单元格都有上、左、下间距。是否有任何集合视图数据源方法,以便在每个索引路径中指定单元格插图。

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: block.blockCellIdentifier, for: indexPath) as! BlockBaseClass

        let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
        layout.minimumLineSpacing = 10

    return cell
    

但布局不起作用,在 cellforitemAt 索引路径内。

【问题讨论】:

【参考方案1】:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets

    return UIEdgeInsetsMake(5.0,5.0,5.0,5.0) // top, left, bottom, right

【讨论】:

如何给每个单元格的插图?喜欢每个索引路径 这将默认应用到所有单元格,添加UICollectionViewDelegateFlowLayout 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。【参考方案2】:

借助这个委托函数,您可以:

覆盖 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionat section: Int) -> UIEdgeInsets 返回 UIEdgeInsetsMake(50, 50, 15, 50)

这个 UIEdgeInsetsMake ( CGFloat top,CGFloat left,CGFloat bottom,CGFloat right);

【讨论】:

第一个给出的是自定义edgeInsect的功能

以上是关于如何在 Collection 视图中为每个单元格添加 edgeInsets -Swift的主要内容,如果未能解决你的问题,请参考以下文章

如何在本机反应中为整个应用程序(如每个屏幕)在屏幕底部显示自定义视图

如何在 UITableView 中为不同的单元格和标题设置不同的随机颜色?

如何在配置单元中为结构字段创建视图

如何在网格视图中为网格单元格着色?

如何在 swift 3 中为 UITable 视图提供单元格缩进级别?

Collection View Xib Cell Bug 中的表视图