集合视图单元格不在图像视图中显示图像

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 中。

以上是关于集合视图单元格不在图像视图中显示图像的主要内容,如果未能解决你的问题,请参考以下文章

在集合视图单元格中自行调整图像大小

我显示了单元格,但是当我按下按钮时,我希望图像显示在集合视图单元格中

图像的集合视图和弹出窗口上的单元格显示图像,也可以滚动查看其他图像

在集合视图中显示长单元格(如矩形)的问题

将数组中的图像嵌入到集合视图的单元格中

在表格视图单元格中添加集合视图 swift 3