我正在使用uicollection视图以网格视图格式显示图像。我能够显示单元格但高度和高度。 iPad的宽度不会增加它只显示为小块。请告诉我如何让它变得动态。
[![在此处输入图像说明] [1]] [1]
我使用以下代码使其动态化。
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
if (collectionView==self.album_collection_view) {
return 2.0;
}
else
return 2.0;
}
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
if (collectionView==self.album_collection_view) {
return 2.0;
}
else
return 2.0;
}
// Layout: Set Edges
- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
// return UIEdgeInsetsMake(0,8,0,8); // top, left, bottom, right
if (collectionView==self.album_collection_view) {
return UIEdgeInsetsMake(5,0,0,0);
}// top, left, bottom, right
else
return UIEdgeInsetsMake(5,0,0,0);
}
请告诉我如何解决此问题?
答案 0 :(得分:1)
这是解决方案
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
YourCollectionCell * cell = (YourCollectionCell *) [YourCollectionViewObj cellForItemAtIndexPath:indexPath];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"YourCollectionCell" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
cell.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 20);
// SET YOUR CONTENT
[cell layoutIfNeeded];
}
CGSize CellSize = [cell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize withHorizontalFittingPriority:UILayoutPriorityDefaultHigh verticalFittingPriority:UILayoutPriorityDefaultLow];
return CellSize;}
如果上述解决方案无法满足您的需求,为了获得您想要的内容,您应该创建自己的UICollectionViewLayout(或者可能是UICollectionViewFlowLayout)子类,您可以在其中执行将每个项目放在右侧框架中所需的所有计算。
点击此处查看great tutorial,此处查看something similar to what you want。
答案 1 :(得分:-1)
如果要增加单元格的高度和宽度,则必须使用$(staticParent).on(event, selector, callback);
方法。为此,您必须添加sizeForItemAtIndexPath
委托。
UICollectionViewDelegateFlowLayout