我需要在UICollectionViewCell上添加图像和文本。 所以我使用了这段代码
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"cvCell";
CVCell *cell = (CVCell *)[collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
NSString *cellData = [firstSection objectAtIndex:indexPath.row];
[cell.titleLabel setText:cellData];
NSString *imageName = [second objectAtIndex:indexPath.row];
NSLog(@"CV setting image for row %ld from file in bundle with name '%@'", (long)indexPath.row, imageName);
cell.myImageView.image = [UIImage imageNamed:imageName];
return cell;
}
FirstSection数组有一些名称,第二个数组有图像。显示文字但图像无效。
所以请告诉我我的代码中有什么不对。
我遇到这样的错误:
2014-11-07 15:18:56.928 CollectionViewExample[4459:151457] CV setting image for row 0 from file in bundle with name '(
"real_estate_2.png",
"photography_2.png",
"auto_2.png",
"electronics_2.png",
"services_2.png"
)'
2014-11-07 15:18:56.929 CollectionViewExample[4459:151457] -[__NSArrayI length]: unrecognized selector sent to instance 0x7be86240
2014-11-07 15:18:57.044 CollectionViewExample[4459:151457] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI length]: unrecognized selector sent to instance 0x7be86240'
*** First throw call stack:
(
0 CoreFoundation 0x02bf5df6 __exceptionPreprocess + 182
1 libobjc.A.dylib 0x01975a97 objc_exception_throw + 44
2 CoreFoundation 0x02bfda75 -[NSObject(NSObject) doesNotRecognizeSelector:] + 277
3 CoreFoundation 0x02b469c7 ___forwarding___ + 1047
4 CoreFoundation 0x02b4658e _CF_forwarding_prep_0 + 14
5 UIKit 0x008ad0be +[_UIAssetManager createAssetNamed:fromBundle:] + 66
6
答案 0 :(得分:2)
我经常在UICollectionView中做的最常见的错误是由于没有写
[self.myCollectionView registerClass:[MyCollectionViewCell class] forCellWithReuseIdentifier:@ “了myCell”];
您是否尝试过在imageView中提供静态图片?如果它工作,那么我假设您的阵列中的UIImage可能需要进行类型转换
请点击此链接:http://www.techotopia.com/index.php/An_Overview_of_iOS_6_Collection_View_and_Flow_Layout
答案 1 :(得分:0)
错误是你的新版本collectionViewCell
或更早版本imageView
现在没有名为(myImageOnCollectionView
之前)或collectionCell
的属性。这是因为您的集合视图不响应选择器。 (选择器与方法相同)。
如果您的实现文件(.h)中有自定义@property (nonatomic, strong) UIImageView *theNameYouWant; // The must be the same you implement en cellForRow...
(简单方法),请添加以下内容:
IBOutlet
//使用故事板表示连接此属性。 (确保在storyBoard中,单元格必须是您自己的单元格类。)
连接时出现@property (nonatomic, strong) IBOutlet UIImageView *theNameYouWant;
;
{{1}}
//如果你有全部代码,请告诉我。
答案 2 :(得分:0)
对不起,答案很简单,但看起来像是
imageName它的NSArray不是NSString
cell.myImageView.image = [UIImage imageNamed:<NSArray>];
请NSLog(@&#34;%@&#34;,第二名);