【问题标题】:Left aligning UICollectionView Cells without using Custom Layout在不使用自定义布局的情况下左对齐 UICollectionView 单元格
【发布时间】:2021-08-12 01:16:24
【问题描述】:

我正在尝试创建一个左对齐的集合视图。实现这一点的最流行的方法似乎是使用自定义集合视图布局(例如:https://stackoverflow.com/a/36016798/11515703)。但是,我试图在不使用自定义布局的情况下执行此操作,因为它删除了我设置的集合视图部分标题。这可能吗?

我试过这样做:

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
        let inset = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: view.frame.width)
        
        return inset
    }

上面的代码实现了结果,但是它与集合视图流布局规则冲突导致了很多问题。有其他方法吗?

这是我想要达到的结果:

注意:我正在使用宽度可变的集合视图单元格。

【问题讨论】:

    标签: swift uicollectionview uicollectionviewcell uicollectionviewflowlayout


    【解决方案1】:

    contentInset,内容视图插入到安全区域或滚动视图边缘的自定义距离,Apple documentation

    collectionView.contentInset = UIEdgeInsets(
        top: 0,
        left: 16,
        bottom: 0,
        right: 16)
    
    Without contentInset With contentInset

    【讨论】:

    • 我正在使用具有可变单元格宽度的集合视图,所以这对我不起作用。
    【解决方案2】:

    你可以使用contentInset

    默认情况下,UIKit 会自动调整内容插入以考虑重叠条。您可以使用此属性进一步扩展该距离,也许是为了容纳您自己的自定义内容。

    Read in apple docs

    【讨论】:

    • 试过了,但它不起作用,因为 contentInset 对于所有单元格都是一样的,而且我使用的是可变宽度的单元格。
    猜你喜欢
    • 2017-05-07
    • 2017-10-13
    • 2016-10-29
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多