我想在集合视图中创建不同大小的单元格。在collectionViewLayout sizeForItemAtIndexPath我用CGSize对象创建了一个数组。当我想检索存储在 NSArray 中的对象(与 NSMutableArray 相同)时,我得到以下语义问题:
Returning 'id' from a function with incompatible result type 'CGSize' (aka 'struct CGSize')
如何访问数组中的 CGSize 对象?
编辑:我发现存储在数组中的值来自 NSSize 类型。
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
UIImage *image;
int row = [indexPath row];
NSArray *mElements = [NSArray arrayWithObjects:[NSValue valueWithCGSize:CGSizeMake(306.0, 270.0)],
[NSValue valueWithCGSize:CGSizeMake(100.0, 150.0)],
[NSValue valueWithCGSize:CGSizeMake(200.0, 150.0)],
[NSValue valueWithCGSize:CGSizeMake(200.0, 150.0)],
[NSValue valueWithCGSize:CGSizeMake(100.0, 150.0)],
nil];
return [mElements objectAtIndex:row]; // Semantic issue
}
我不明白的是,在另一部分,同样的方法有效......
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
CollectionViewCell *myCell = (CollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:Cellid forIndexPath:indexPath];
int row = [indexPath row];
myCell.cellImageView.image = [self.searches objectAtIndex:row]; // Here it works...
return myCell;
}
为什么它适用于具有 UIImages 的数组而不适用于具有 CGSize 对象的数组?
干杯——杰里克