gpt4 book ai didi

ios - UICollectionView 包装器 View 框架更新

转载 作者:行者123 更新时间:2023-11-29 00:06:19 25 4
gpt4 key购买 nike

我有一个由 UIView 包装的 Collection View , Collection View 与包装 View 具有相同的边界。并且 Collection View 数据源将更改,因此包装 View 边界也会更改。我已经实现了包装器 View intrinsicContentSize方法 collectionView.collectionViewLayout.collectionViewContentSize , Collection View 布局是 UICollectionViewFlowLayout 的子类,UICollectionView的单元格也实现了方法 intrinsicContentSize ,但包装 View 没有使用 Collection View 内容大小更新框架。 collectionViewContentSize总是CGRectZero .我试过了

  [self.layout invalidateLayout];
[self.collectionView reloadData];
[self.collectionView layoutIfNeeded];

但是没用, 我应该做什么来更新包装 View 框架 collectionView.collectionViewLayout.collectionViewContentSize .

下面是一些代码:

  ZXCollectionViewWrapperView *wrapperView = [[ZXCollectionViewWrapperView alloc] init];
[self.view addSubview:wrapperView];
[wrapperView mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(self.view);
}];
self.wrapperView = wrapperView;

/// wrapper view size
- (CGSize)intrinsicContentSize {
return self.collectionView.collectionViewLayout.collectionViewContentSize;
}


ZXCollectionViewAlignedLayout *layout = [[ZXCollectionViewAlignedLayout alloc] init];
self.layout = layout;
ZXCollectionView *collectionView = [[ZXCollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
collectionView.dataSource = self;
collectionView.delegate = self;
collectionView.backgroundColor = [UIColor lightGrayColor];
[self addSubview:collectionView];
[collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
self.collectionView = collectionView;

[self.collectionView zx_registerCellClass:[ZXCommendCell class]];

self.dataSource = dataSource;
[self.collectionView reloadData];
[self.collectionView layoutIfNeeded];

最佳答案

当您使用自动布局时,您应该为包装 View 创建一个高度约束。然后您可以将该约束的常量更改为等于 Collection View 内容大小,如下所示:

heightConstraint = make.height.equalTo(200) // initial height

然后可以使用KVO观察collection view content size来改变和设置

heightConstraint.constant = collectionView.contentSize.height

观察contentSize可以引用这个:observing contentSize (CGSize) with KVO in swift

关于ios - UICollectionView 包装器 View 框架更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47965629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com