我有一个包含不同项目大小的集合视图,我在其中声明
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
FeedItem *item = [_imagesLinkArray objectAtIndex:indexPath.row];
return CGSizeMake(250, 200*item.sizeFactor);
}
当电池被重复使用时collectionView:cellForItemAtIndexPath:
该项目正在使用重新使用的项目大小而不是中指定的大小进行渲染sizeForItemAtIndexPath:
.
有任何想法吗?
看起来collectionView:layout:sizeForItemAtIndexPath:
在渲染 CollectionView 之前,在布局准备时调用一次。
因此,每当您滚动并且单元格出队时,它就会调整为由collectionView:layout:sizeForItemAtIndexPath:
在准备阶段。您是否期望每当具有特定 indexPath 的单元格可见时调用此方法?这样你就可以动态改变单元格大小?似乎这不是该方法的使用方式,它可以用于在布局准备阶段确定单元的大小。
如果由于某种原因需要重新计算尺寸,您可以使用以下命令使布局无效[UICollectionViewLayout invalidateLayout]
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)