为 uicollectionView 单元格设置比例大小?

Posted

技术标签:

【中文标题】为 uicollectionView 单元格设置比例大小?【英文标题】:set propotional size for uicollectionView cell? 【发布时间】:2015-10-26 05:43:37 【问题描述】:

大家好,

我已经创建了一个 UIcollectionView 单元格。我想为所有设备设置高度和宽度比例。例如。如果 iphone 5s 上的高度为 80 和宽度为 90,那么它也应该在其他设备上是比例的。我正在使用这个方法。

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath


    return CGSizeMake(80, 90);

【问题讨论】:

【参考方案1】:

试试这个

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
    return CGSizeMake(self.view.frame.size.width/.25, self.view.frame.size.width/.28);

【讨论】:

【参考方案2】:

您所要做的就是将单元格的尺寸乘以您想要的任何比例。如果 80x90 是您在 iPhone 5 上想要的尺寸,请通过咨询指南 like this one 计算适当的乘数。例如,5 的点分辨率是 320 x 568,而 6 的点分辨率是 375 x 667,因此您的宽度乘数将为 375/320,高度为 667/568。 (我会让你算算。:))

【讨论】:

【参考方案3】:

使用这个

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
return CGSizeMake(self.view.frame.size.width/2, self.view.frame.size.width/2);
-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
return 0
;

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

【讨论】:

这让我的单元格看起来太大了 你应该在你的单元格的情节提要中使用自动调整大小 我正在使用自动布局 哦,我明白了,但在我的项目中我使用它并工作..但我没有使用自动布局:D 我正在使用自动布局,这就是为什么我不能使用你的方法

以上是关于为 uicollectionView 单元格设置比例大小?的主要内容,如果未能解决你的问题,请参考以下文章

无法在 uicollectionview、UICollectionView 的特定 indexPath.row 处为单元格设置标题

在 UICollectionView 中为特定单元格设置动画

点击时将图像设置为 UICollectionView 单元格

UICollectionVIew:在滚动时为单元格设置动画

如何使用持续时间为单个 UICollectionView 单元格设置动画

iOS:将 UICollectionView 单元格设置为视图大小