繁体   English   中英

iPhone 5上的UICollectionView布局问题

[英]UICollectionView layout issue on iphone 5

我的UICollectionView有问题,我有3列,并且一切正常,而不是iPhone 5和4。

在iPhone 6中,我的collectionview看起来(单元格中的宽度):

iphone 6 3格

带2电池的iPhone 6

带单元格的iPhone 5:

iPhone 5 3格

问题是,当在最后一行时,我有2个单元格,看起来像这样: iPhone 5,带2个电池

我想要达到的外观:

预计2单元的iPhone 5

只要有可能,我都会将插图设置为(0,0,0,0)。 我使用默认布局,并在情节提要中设置了插图。 那么可以使用流布局来实现这一点,还是我需要研究自定义布局?

===编辑我在情节提要中创建UICollectionView并实现委托:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    float width = self.frame.size.width / 3.0f;
    float height =  floorf(width + 118);

    if(SMALLER_THAN_6){
        width = floorf(width);
        if([indexPath row] % 3 < 2){
            ++width;
        }
    }


    return CGSizeMake(width, height);
}

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
    return UIEdgeInsetsMake(0, 0, 0, 0);
}

- (CGFloat)collectionView:(UICollectionView *)collectionView
                   layout:(UICollectionViewLayout*)collectionViewLayout
minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
    return 0.0;
}

- (CGFloat)collectionView:(UICollectionView *)collectionView
                   layout:(UICollectionViewLayout*)collectionViewLayout
minimumLineSpacingForSectionAtIndex:(NSInteger)section{
    return 0.0;
}

我通过在行末插入一个空单元格解决了这个问题(仅适用于iPhone 4和5)

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM