使用带有UICollectionView的sizeForItemAtIndexPath的简单方法

时间:2016-02-22 09:58:37

标签: ios objective-c uicollectionview uicollectionviewcell

我已经检查了很多这方面的链接,但我无法得出结论。我想要做的是为UICollectionView的单元格提供动态大小。我有一系列不同大小的图像,我想显示它们。我无法弄清楚为什么SO上的其他答案对于这个问题是如此复杂,我理解的是,我只需要在sizeForItemAtIndexPath方法中计算图像的大小,如上所述here但是我收到错误, *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString size]: unrecognized selector sent to instance 0x10fc860a0 我对sizeForItemAtIndexPath的实现是as,

- (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;
}

一切看起来都很好,有人可以指出我出错的地方,提前谢谢。

1 个答案:

答案 0 :(得分:0)

仔细查看错误:[__NSCFConstantString size]。看起来你试图在字符串对象上调用size方法。

您确定arrRecipeImages是由图片组成的吗?您明确地将数组从数组中转换为UIImage对象,但它可以是任何内容。