我有一个UICollectionView
显示图像的。我的图像尺寸为 114x133,但由于某种原因实际尺寸大于此尺寸UICollectionVewCell
(我可以看到这是因为我将单元格背景设置为红色)。因此,视图只能显示 2 个图像,并且两者之间存在巨大差距。我正在实施以下
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
UIImage* img = [UIImage imageNamed:@"thumbnail_frame.png"];
return img.size;
}
- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(1, 1, 1, 1);
}
我正在以contentview
编程方式创建单元格(即初始化imageView
等)。
我在以编程方式创建整个视图的不同视图中面临同样的问题。我在那里:
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.minimumInteritemSpacing=10;
flowLayout.minimumLineSpacing= 30;
flowLayout.sectionInset = UIEdgeInsetsMake(5, 5, 5, 5);
if(collectionView != nil) {
[collectionView removeFromSuperview];
}
CGRect frm= CGRectMake(45, 80, 250, 230);
collectionView = [[UICollectionView alloc] initWithFrame:frm collectionViewLayout:flowLayout];//(0, 0, self.view.frame.size.width, self.view.frame.size.height) collectionViewLayout:flowLayout];
collectionView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
collectionView.clipsToBounds = YES;
collectionView.layer.cornerRadius = 10.0;
collectionView.dataSource = self;
collectionView.delegate = self;
[collectionView registerClass:[YourPicCollectionViewCell class] forCellWithReuseIdentifier:@"YourPicCell"];
同样,两个图像之间的差距很大,或者如果我缩小宽度,则有 3 个图像,但最右边的一个是半可见的。
我修改了间距,但它似乎不起作用。可能是什么问题呢?