我有简单CollectionView
,但在iphone 4
和5
以及5s中效果很好。但当我跑进iphone 6
和6plus
时,它看起来像
但我想删除iphone 6
和6 plus
中的单元格之间的空格。是删除空间的属性?如果属性请告诉我。
答案 0 :(得分:7)
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
float width = collectionView.frame.size.width / 2;
return CGSizeMake(width, width);
}
for Swift
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
{
return CGSizeMake(collectionView.frame.size.width/2, collectionView.frame.size.width/2)
}
答案 1 :(得分:2)
看起来你需要调整单元格大小以使它们填充空白区域。您需要使用 UICollectionViewFlowLayout 和 UICollectionViewFLowLayoutDelegate 并实施
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeMake(HEIGHT, SCREEN_WIDTH/2)
}
查看Ray Wenderlich教程以获取更多信息: http://www.raywenderlich.com/22324/beginning-uicollectionview-in-ios-6-part-12][1]
答案 2 :(得分:2)
使用sizeForItemAtIndexPath
委托方法
您计算宽度,包括两张照片之间的空间。
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake((collectionView.frame.size.width-15)/2, (collectionView.frame.size.width-15)/2); // here 5 padding between two photos, you give hight and width here
}
答案 3 :(得分:0)
CGFloat margin = 5.0;
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.itemSize = CGSizeMake(([UIScreen mainScreen].bounds.size.width - margin)/ 2, ([UIScreen mainScreen].bounds.size.width - margin)/ 2);
layout.minimumLineSpacing = margin;
layout.minimumInteritemSpacing = margin;
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:[UIScreen mainScreen].bounds collectionViewLayout:layout];
修改margin
以更改两个单元格之间的空间。