我需要构建一个包含9个单元格的UICollectionView
,第一个UICollectionViewCell
的元素应该比其他元素大。我是这样做的:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath{
if (hero == YES) {
CGRect cellbounds = cell.firstView.bounds;
cellbounds.size = CGSizeMake(10, 10);
cell.firstView.bounds = cellbounds;
}
else{
CGRect cellbounds = cell.firstView.bounds;
cellbounds.size = CGSizeMake(100, 100);
cell.firstView.bounds = cellbounds;
}
问题是我第一次启动我的应用程序时,所有单元格都有默认大小,并且只有在刷新了CollectionViewCell后才会应用所需的大小(我使用过layoutIfNeeded
)。
- (void)viewWillLayoutSubviews
{
[self.CollectionView layoutIfNeeded];
}
请告诉我,我做错了什么?
答案 0 :(得分:0)
尝试在控制器的viewDidAppear中调用 [self.CollectionView reloadData]; 。
答案 1 :(得分:0)
您应该实现此委托方法,我假设您正在使用flowLayout。
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath