繁体   English   中英

不同iDevices的自适应布局UICollectionViewCell大小

[英]Adaptive Layout UICollectionViewCell Size for Different iDevices

我正在为不同的iDevices屏幕尺寸使用自适应布局,我在纵向显示两个单元格时遇到麻烦。 我设计了一个130 x 210的单元,在iPhone 5上看起来很完美,但是在iPhone 6中我们有更多的30 px,为此我计算剩余空间并设置相同的空间,但看起来很难看

在此输入图像描述

当我使用iPhone 6+时,它看起来更奇怪,并且在iPad上会有更多的连续细胞,建议我一种方法来处理这种情况,或者我应该每次计算项目的大小和项目的数量屏幕可以相应地包含空间。 这就是我现在的计算方法

int space = self.view.frame.size.width;
space = space - 130 *2;
space = space/3;
UICollectionViewFlowLayout *flow = [[UICollectionViewFlowLayout alloc] init];
flow.minimumInteritemSpacing = space;
flow.minimumLineSpacing = space;
flow.scrollDirection = UICollectionViewScrollDirectionVertical;
flow.sectionInset = UIEdgeInsetsMake(space, space, space, space);
flow.itemSize = CGSizeMake(130, 210);
[self.collectionViewGames setCollectionViewLayout:flow];

我在实现类似于照片应用的应用时遇到了同样的问题。 我在这里做的是我将间距的大小固定为一个恒定值。 并根据剩余的空间我计算了项目大小。

这是我案例中的代码

 var flowLayout = // your flow layout


        var itemWidth = self.view.frame.size.width / (5) // i am using 5 cells in a row
    flowLayout.itemSize = CGSizeMake(itemWidth - 2, itemWidth - 2)
    flowLayout.scrollDirection = UICollectionViewScrollDirection.Vertical
    flowLayout.sectionInset = UIEdgeInsets(top: 0, left: 0 , bottom: 0, right: 0)
    flowLayout.minimumInteritemSpacing = 2
    flowLayout.minimumLineSpacing = 2

暂无
暂无

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

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