我有一个收集视图与我声明的不同的项目大小
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeforItemAtIndexPath:(NSIndexPath *)indexPath { FeedItem *item = [_imagesLinkArray objectAtIndex:indexPath.row]; return CGSizeMake(250,200*item.sizefactor); }
当单元格在collectionView中被重用时:cellForItemAtIndexPath:
该项目正在使用reesed项目大小呈现,而不是在sizeforItemAtIndexPath:中指定的项目.
有任何想法吗?
解决方法
看来,CollectionView:layout:sizeforItemAtIndexPath:在布局准备之前被调用一次,在呈现CollectionView之前.
所以每当你滚动和一个单元格出队时,它被调整到由collectionView提供的大小:layout:sizeforItemAtIndexPath:在准备阶段.您希望每当具有特定indexPath的单元格可见时调用此方法?所以你可以动态改变单元格大小?似乎这不是如何使用这种方法,它可以用于在布局准备阶段一次确定一个单元格的大小.
如果您因为某些原因需要重新计算尺寸,可以使用[UICollectionViewLayout invalidateLayout]使布局无效.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。