调整UICollectionViewCells大小为4 / 3.5英寸屏幕

时间:2014-03-27 22:13:36

标签: ios iphone uicollectionview autolayout uicollectionviewcell

我正在尝试UICollectionView功能(这是一个非常好的...)。有一点不清楚 - 如何支持与UICollectionViewCells大小相关的4英寸和3.5英寸屏幕。我希望边缘之间和单元格之间的间隙保持不变,并根据设备更改单元格大小。

我该如何处理?

1 个答案:

答案 0 :(得分:1)

您应该首先继承UICollectionViewFlowLayout。一些实现可以在头文件中这样:

@interface CustomCollectionViewLayout : UICollectionViewFlowLayout

@end

执行文件:

@implementation CustomCollectionViewLayout

-(id) init
{
    if(self = [super init])
    {
        BOOL is4Inch = ([[UIScreen mainScreen] bounds].size.height == 568.0);
        CGSize ItemSize = is4Inch ? CGSizeMake(150, 120) : CGSizeMake(90, 72);
        [self setItemSize:ItemSize];
        [self setMinimumInteritemSpacing:10.0];
        [self setMinimumLineSpacing:10.0];
        [self setScrollDirection:UICollectionViewScrollDirectionVertical];
        [self setHeaderReferenceSize:CGSizeMake(0, 5)];
        [self setFooterReferenceSize:CGSizeMake(0, 20)];
        [self setSectionInset:UIEdgeInsetsMake(0, 10, 0, 10)];
    }

    return self;
}

@end

然后你应该设置UICollectionView的布局,例如:

CustomCollectionViewLayout * customLayout = [[CustomCollectionViewLayout alloc] init];
self.collectionView = [[UICollectionView alloc] initWithFrame:someFrame collectionViewLayout:customLayout];

或者喜欢:

[self.collectionView setCollectionViewLayout:customLayout animated:YES];