gpt4 book ai didi

ios - UICollectionViewFlowLayout 的 estimatedItemSize 中断滚动?

转载 作者:技术小花猫 更新时间:2023-10-29 10:40:02 31 4
gpt4 key购买 nike

(编辑:它似乎从 iOS 9 开始运行良好。我没有进行广泛的测试,但示例有效。这证实了 iOS 中存在的错误8.)

我花了很多时间测试 UICollectionView 的 Flow Layout self 调整大小行为。在经历了很多挫折之后,问题缩小到这样一个事实,即一旦将 estimatedItemSize 设置为非零大小,滚动就不再正常工作。

在我的示例中,它没有显示 40 个项目,而是只显示 32 个。

我已经复制粘贴了下面的代码。我从 Swift 版本开始测试了很多东西。

基本上它无法计算和/或正确更新布局的 collectionViewContentSize()

这是一个完整的演示 http://git.io/AIrHNA

任何人都可以指出我正确的方向吗?

谢谢

@implementation ViewControllerObjcC

static NSString * const reuseIdentifier = @"Cell";
-(UICollectionViewFlowLayout*)flowLayout{
return (UICollectionViewFlowLayout*)self.collectionViewLayout;
}

- (void)viewDidLoad {
[super viewDidLoad];
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];
CGSize estimatedSize = CGSizeMake(self.view.frame.size.width, 25.0);
BOOL testEstimatedItemSize = true;
if (testEstimatedItemSize) {
[self flowLayout].estimatedItemSize = estimatedSize;
}else{
[self flowLayout].itemSize = estimatedSize;
}

}

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 1;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return 40;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 30)];
[cell.contentView addSubview:label];
label.text = [NSString stringWithFormat:@"%ld",(long)indexPath.row];
label.backgroundColor = [UIColor redColor];
return cell;
}

最佳答案

来自 Apple's Document ,

Specifically, cells that are not onscreen are assumed to be the estimated height.

这是我的猜测。

当估计高度小于实际单元格高度时, Collection View 的内容大小预测小于实际内容大小。

因此它只显示总共 40 个单元格中的 32 个。

在我的项目中,当使用较大的估计尺寸时,所有的 celsl 都会显示。

关于ios - UICollectionViewFlowLayout 的 estimatedItemSize 中断滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27659847/

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