如何删除Iphone 6和iPhone 6plus中ios中Collection View Cell之间的空间?

时间:2015-12-22 07:14:05

标签: ios objective-c uicollectionview

我有简单CollectionView,但在iphone 45以及5s中效果很好。但当我跑进iphone 66plus时,它看起来像

enter image description here

但我想删除iphone 66 plus中的单元格之间的空格。是删除空间的属性?如果属性请告诉我。

4 个答案:

答案 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以更改两个单元格之间的空间。