首页 > 解决方案 > UICollectionViewLayout sectionInset 不起作用

问题描述

我在垂直集合视图中做一个水平集合视图。它非常适用于垂直集合视图。但在水平 cv 中,第一个单元格的左侧有一些空间,如图像。我已将水平集合视图着色为黄色。UIEdgeInsetMake 仅适用于顶部、底部和右侧,但不适用于左侧。即使我使用委托方法insetForSectionAtIndex也得到相同的结果。知道为什么它不起作用吗?

图片

垂直 cv 的单元格仅包含一个集合视图。在第一个单元格中

- (void)layoutSubviews {
CGFloat itemHeight = [_innerCell intrinsicContentSize].height;
CGFloat itemWidth = (CGRectGetWidth([UIScreen mainScreen]).bounds));

_cvLayout = (id) _collectionView.collectionViewLayout;
_cvLayout.sectionInset = UIEdgeInsetMake(0,0,0,0);
_cvLayout.itemSize = CGSizeMake(itemWidth, itemHeight);
}

标签: iosobjective-cuicollectionview

解决方案


只需设置.contentInset的属性collectionView,它将起作用。

示例代码:

self.collectionView.contentInset = UIEdgeInsets.init(top: 0, left: 20, bottom: 0, right: 0)

推荐阅读