我有12张图片,我想在UICollectionView
中以4行显示这些图片,每行有3张图片。
这是我的.h文件代码
@interface MyMusic : UIViewController<UICollectionViewDataSource,UICollectionViewDelegate>
{
UICollectionView *_collectionView;
}
@end
这是我的.m文件代码
- (void)viewDidLoad{
enter code hereUICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setItemSize:CGSizeMake(100, 100)];
[flowLayout setMinimumLineSpacing:5];
[flowLayout setMinimumInteritemSpacing:5];
[flowLayout setSectionInset:UIEdgeInsetsMake(0, 0, 0, 0)];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(10,238, 300, 200) collectionViewLayout:flowLayout];
_collectionView.backgroundColor = [UIColor redColor];
[_collectionView setDataSource:self];
[_collectionView setDelegate:self];
[_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cellIdentifier"];
[self.view addSubview:_collectionView];
}
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
return 4;}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{return 3;}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
enter UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
cell.backgroundColor=[UIColor greenColor];
return cell;
}
上面的代码工作正常,但我的输出不会正确
它看起来像这样
任何人都可以帮助我如何解决这个问题?
答案 0 :(得分:1)
UICollectionView
宽度 300点,而物品的宽度为100点。
Interitem空间是5分,所以
100*3 + 5*2 = 310.
这就是为什么你只看到2列。
让细胞的宽度稍微缩小,例如290
或者将interitem间距设置为0。
主要规则 - 您的UICollecitionView
宽度应大于或等于单元格的总和widths + interitem spacing
答案 1 :(得分:0)
替换
[flowLayout setItemSize:CGSizeMake(100, 100)];
通过
[flowLayout setItemSize:CGSizeMake(75,100 )];
我正在使用75仅用于试用,并考虑使用iphone screen.so列的宽度相等。
但是,您不应使用硬编码值。