移除列表UICollectionView单元格分隔线

6

我正在尝试使用新的CollectionView API构建类似于WhatsNewKit(WhatsNewKit)的列表。

我的问题是我似乎无法删除单元格分隔符。我正在使用UICollectionViewListCell作为单元格,到目前为止,我尝试更改单元格separatorLayoutGuide如下:cell.separatorLayoutGuide.heightAnchor.constraint(equalToConstant: 0).isActive = true但它只告诉我它破坏了CollectionView的约束。

( "<NSLayoutConstraint:0x600002364b90 UILayoutGuide:0x60000390a060'UICollectionViewListCellSeparatorLayoutGuide'.height == 0 (active)>", "<NSLayoutConstraint:0x600002364730 'UICollectionViewListCell-height-separatorLayoutGuide-constraint' UILayoutGuide:0x60000390a060'UICollectionViewListCellSeparatorLayoutGuide'.height == 0.333333 (active)>" )

将尝试通过破坏约束来恢复 <NSLayoutConstraint:0x600002364730 'UICollectionViewListCell-height-separatorLayoutGuide-constraint' UILayoutGuide:0x60000390a060'UICollectionViewListCellSeparatorLayoutGuide'.height == 0.333333 (active)>

那么有没有办法去掉这些分隔符?

enter image description here

2个回答

7
你可以通过更改 UICollectionLayoutListConfiguration 的属性 showsSeparators 来隐藏分隔线(在配置集合视图布局时,可能会将 UICollectionLayoutListConfiguration 传递给你的 collectionView.collectionViewLayout)。
示例用法:
let provider = {(_: Int, layoutEnv: NSCollectionLayoutEnvironment) -> NSCollectionLayoutSection? in
  var configuration = UICollectionLayoutListConfiguration(appearance: .grouped)
  configuration.showsSeparators = false // <----- hide separators
  return .list(using: configuration, layoutEnvironment: layoutEnv)
}
collectionView.collectionViewLayout = UICollectionViewCompositionalLayout(sectionProvider: provider)

很遗憾,这是一个列表CollectionView而不是TableView,因此我在这里没有分隔符样式属性。 - Lobont Andrei
抱歉,我现在已经更新了答案。 - Mickey16

3
与被采纳的答案相同,只是采用了简单的布局:
var config = UICollectionLayoutListConfiguration(appearance: .plain)
config.showsSeparators = false
        
let layout = UICollectionViewCompositionalLayout.list(using: config)
        
collectionView.collectionViewLayout = layout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接