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

时间:2014-12-27 10:46:58

标签: ios objective-c uiimageview uicollectionview

我正在尝试为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

故事板中的集合视图单元格具有自定义类&#34; customCell&#34;和标识符&#34; customCell&#34;。

如果有人能指出我的错误可能会让我感到非常棒! 谢谢!

2 个答案:

答案 0 :(得分:5)

我有这个非常相似的问题。当使用故事板时,我无法在uicollection视图单元格内显示图像视图。我刚刚在CollectionViewController的ViewDidLoad中删除了以下代码:

//[self.collectionView registerClass:[CustomCollectionViewCell class]forCellWithReuseIdentifier:reuseIdentifier];

现在ImageView显示在单元格内。

答案 1 :(得分:1)

在故事板中查看,有时在单元格中,xCode将图像框架设置为(0,0,0,0)。它让我疯了很多次^^

编辑: 要创建自定义集合单元格,请创建一个空的XIB文件。 在其中添加一个collectionViewCell,您可以随心所欲。 与你建立联系.h文件。

在你的viewController中 - &gt; 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];
}