带有 CollectionView 的照片库 xcode

Photo gallery with a CollectionView xcode

我正在构建一个看起来像照片库的应用程序。 我遵循不同的参考,但它仍然不是 运行。 问题出在单元格中的 imageView,因为如果我尝试更改单元格的 backgroundColor 它会起作用,尽管我尝试更改 imageViewimage 它没有 运行.

- (void)viewDidLoad {
    [super viewDidLoad];

    _ownImages = [@[@"1.jpg",
                    @"2.jpg",
                    @"2.jpg",
                    @"3.jpg"] mutableCopy];

    self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init];
    _photoGallery =[[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:layout];
    [_photoGallery setDataSource:self];
    [_photoGallery setDelegate:self];

    [_photoGallery registerClass:[PhCell class] forCellWithReuseIdentifier:@"photoCell"];

    [self.view addSubview:_photoGallery];

}

这里我更改了CollectionView

的选项
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    return 1;
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake(100, 100);
}

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return _ownImages.count;
}

最后,我创建了 Cell

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
                  cellForItemAtIndexPath:(NSIndexPath *)indexPath {

    PhCell *myCell = [_photoGallery dequeueReusableCellWithReuseIdentifier:@"photoCell" forIndexPath:indexPath];

    long row = [indexPath row];

    NSLog(@"%@", _ownImages[row]);

    image = [UIImage imageNamed:_ownImages[row]];

    myCell.backgroundColor = [UIColor clearColor];

    myCell.imageView.image = image;

    return myCell;

}

为了实现自定义 Cell,我创建了一个名为 PhCell 的 UICollectionViewCell。在这个 Class 中,我为 cellView 设置了一个 xib 文件,其中有一个 imageView 连接到变量

@property (strong, nonatomic) IBOutlet UIImageView *imageView;

在PhCell.h

代码没有错误,但是显示不了图片,为什么?

试试把图片的背景设置成别的颜色,比如黄色,看图片显示不显示。

在行 image = [UIImage imageNamed:_ownImages[row]]; 中我可以看到你没有初始化 image