無論iPhone的屏幕尺寸是多少,我都想只顯示一行中的兩個單元格。像, 只顯示兩列,在一個CollectionView中使用故事板中的多行
我的故事板包含一個UICollectionView
,通過約束連接。
現在,當我在6,5S或以下運行此,只有一個小區在一行中出現。我已經使用的代碼,
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return [categoryImages count];
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
homePageCells *cell = (homePageCells *)[collectionView dequeueReusableCellWithReuseIdentifier:@"cells" forIndexPath:indexPath];
cell.categoryName.text = [categoryNames objectAtIndex:indexPath.row];
return cell;
}
我試圖檢測屏幕尺寸和使用的代碼編程分配合適的單元尺寸,
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
CGSize sizes;
CGSize result = [[UIScreen mainScreen] bounds].size;
NSLog(@"%f",result.height);
if(result.height == 480)
{
//Load 3.5 inch xib
sizes =CGSizeMake(170.f, 170.f);
NSLog(@"3gs");
}
else if(result.height == 568)
{
//Load 4 inch xib
sizes =CGSizeMake(130.f, 130.f);
NSLog(@"5s");
}
else if(result.height == 667.000000)
{
//Load 4.7 inch xib
sizes =CGSizeMake(160.f, 160.f);
NSLog(@"6");
}
else
{
NSLog(@"else");
sizes =CGSizeMake(170.f, 165.f);
}
return sizes;
}
但我也知道,這是不正確的做法,所以請給我一個正確的方式來處理這個問題。
感謝您節省我的一天。我很愚蠢,我甚至沒有想到這個簡單的解決方案。非常感謝! –
這個答案真的可以幫助我...用戶可以根據需要更改填充... –
這真的有所幫助。感謝您的回答和您提出的問題。 –