【问题标题】:easy way to use sizeForItemAtIndexPath with UICollectionView将 sizeForItemAtIndexPath 与 UICollectionView 一起使用的简单方法
【发布时间】:2016-02-22 09:58:36
【问题描述】:

我已经检查了很多关于此的链接,但我无法得出结论。我想要做的是为 UICollectionView 的单元格设置动态大小。我有一系列不同大小的图像,我想显示它们。我无法弄清楚为什么其他关于 SO 的答案对于这个问题如此复杂,我的理解是,我只需要在 sizeForItemAtIndexPath 方法中计算图像的大小,如提到的here 但我收到一个错误,@987654322 @ 我对 sizeForItemAtIndexPath 的实现是,

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

    UIImage *image = [arrRecipeImages objectAtIndex:indexPath.row];
    CGSize size = CGSizeMake(image.size.width, image.size.height);
    return size;
}

对我来说一切都很好,有人可以指出我哪里出错了,提前谢谢。

【问题讨论】:

    标签: ios objective-c uicollectionview uicollectionviewcell


    【解决方案1】:

    仔细查看错误:[__NSCFConstantString size]。您似乎正在尝试对字符串对象调用 size 方法。

    你确定arrRecipeImages 是由图像组成的吗?您将数组中的项目显式转换为 UIImage 对象,但它可以是任何对象。

    【讨论】:

    • 是的,代码工作正常,如果我注释掉 sizeForItemAtIndexPath 方法,所有图像都会显示。
    • 您可以编辑您的问题并添加您的cellForItemAtIndexPath 方法吗?
    • 感谢您的提示,我将之前的代码更改为UIImage *image = [UIImage imageNamed:[arrRecipeImages objectAtIndex:indexPath.row]];,错误消失了,但没有显示所有图像。
    猜你喜欢
    • 1970-01-01
    • 2012-12-31
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多