集合视图单元格不在图像视图中显示图像
Posted
技术标签:
【中文标题】集合视图单元格不在图像视图中显示图像【英文标题】:Collection View Cell does not display image in image view 【发布时间】:2014-12-27 10:46:58 【问题描述】:我正在尝试为 ios 应用程序创建一个简单的图库。我正在使用 ViewController 内的 UICollectionView。一切似乎都工作正常,但我无法获得我试图用来在集合视图单元格内显示的图像。我将在这里转储一些代码,我一直在拼命寻找解决方案,但似乎没有任何效果。
这是 gallery.m 文件:
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView;
//just a random value for testing
return 2;
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection: (NSInteger)section
//another random test value
return 5;
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
static NSString *identifier = @"customCell";
customCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier
forIndexPath:indexPath];
//UIImage *image = [dataArray objectAtIndex:indexPath.row];
cell.imageView.image = [UIImage imageNamed:@"skull.png"];
//I tried all of the below code to get the image to show but nothing seemed to work
//[cell.imageView setImage:[UIImage imageNamed:@"skull.png"]];
//[cell.imageView setNeedsDisplay];
//[cell.imageView reloadInputViews];
return cell;
这是 customCell.h 文件(UIImageView 出口连接到集合视图单元内的图像视图):
#import <UIKit/UIKit.h>
@interface customCell : UICollectionViewCell
@property (strong, nonatomic) IBOutlet UIImageView *imageView;
@end
关于故事板中的连接,一切都应该没问题,在这里也很难展示,但无论如何我都会尝试解释。 UICollectionView 在 gallery.h 文件中的连接方式如下:
@interface gallery : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>
@property (strong, nonatomic) IBOutlet UICollectionView *collectionView;
@end
情节提要中的集合视图单元格具有自定义类“customCell”和标识符“customCell”。
如果有人能指出我的错误可能在哪里,那就太棒了! 谢谢!
【问题讨论】:
在cellForItem方法中添加断点或日志语句,并检查图像视图属性的值。 【参考方案1】:我遇到了这个非常相似的问题。使用情节提要时,我无法在 uicollection 视图单元格中显示图像视图。我刚刚在 CollectionViewController 的 ViewDidLoad 中删除了以下代码:
//[self.collectionView registerClass:[CustomCollectionViewCell class]forCellWithReuseIdentifier:reuseIdentifier];
现在 ImageView 显示在单元格内。
【讨论】:
【参考方案2】:查看情节提要,有时在单元格中,xCode 将图像帧设置为 (0,0,0,0)。这让我疯狂很多次^^
编辑: 要创建自定义集合单元,请创建一个空的 XIB 文件。 随心所欲地在其中添加一个collectionViewCell。 与您的 .h 文件建立联系。
在你的 viewController -> viewDidLoad 方法中添加
[myCollectionView registerNib:[UINib nibWithNibName:@"collectionCellXIB" bundle:nil] forCellWithReuseIdentifier:myIdentifier];
在 cellForRowAtIndexPath 中
customCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:myIdentifier forIndexPath:indexPath];
if(!cell)
cell = [collectionView dequeueReusableCellWithReuseIdentifier:myIdentifier forIndexPath:indexPath];
【讨论】:
感谢您的输入,但我检查了情节提要并且值正确。 好的 :) 如果图像是“骷髅”而不是“骷髅”,您是否检查了名称? 是的,我已经检查了所有内容是否有错别字,我已经坐在这前面 8 个小时了,但似乎找不到问题所在... 使用 cell.imageView.backgroundColor = UIColor.redColor 确保显示 imageView。您是在单独的 XIB 中还是在主情节提要中创建了单元格? 嗯,好像imageView根本没有显示,没有红色方块。我会尝试更多地朝那个方向寻找,也许我会找到一些东西。我使用了由 UICollectionView 创建的单元格,并将其添加到主情节提要的 ViewController 中。以上是关于集合视图单元格不在图像视图中显示图像的主要内容,如果未能解决你的问题,请参考以下文章
我显示了单元格,但是当我按下按钮时,我希望图像显示在集合视图单元格中