在我的iPhone应用程序中,我想在UICollectionview中使用自定义布局。对于集合视图单元格将有不同的高度。我想设置这样的布局。 我尝试了很多东西,最后调整了高度。(我从服务器获取每个对象的高度)
但是布局不合适。项目之间有很多空格。 如何实现正确的布局。
现在我得到这样的观点
我想要的是 -
这是我的代码 -
-(CGFloat)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout heightForItemAtIndexPath:(NSIndexPath*)indexPath
{
return 60;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return array.count; // getting from server
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
CollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CollectionCell" forIndexPath:indexPath];
cell.imageBG.image = [imagearray objectAtIndex:indexPath.item];
return cell;
}
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGSize retval;
// I'm taking height of each images into HeightArray
retval = CGSizeMake(100, [[HeightArray objectAtIndex:indexPath.item]floatValue ]+50);
return retval;
}
答案 0 :(得分:1)
从您的屏幕截图中,您似乎正在尝试使用标准的UICollectionViewFlowLayout(或其子类)。不幸的是,它的局限在于每一行总是占据相同的高度 - 它与该行中的最高单元格相同,因此它不适合您的任务,您必须实现自己的布局。
检查UICollectionViewWaterfallLayout类,虽然它有其局限性(仅支持1个部分,没有装饰视图)提供您需要的布局,但如果您无法使用它,至少可以是一个很好的起点现在是。