显示黑屏而不是 UICollectionView

Instead of UICollectionView a black screen is displayed

我正在尝试重新实现不定式滚动 UICollectionView here。我缺少的东西:

ViewController.h:

@interface ViewController : UIViewController<UICollectionViewDataSource, UICollectionViewDelegate>

@end

DataCell.h:

@interface DataCell : UICollectionViewCell
@property (nonatomic, strong) UILabel *label;
@end

DataCell.m:

#import "DataCell.h"

@implementation DataCell

-(instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if(self){
        self.label = [[UILabel alloc] initWithFrame:self.bounds];
        self.autoresizesSubviews = YES;
        self.label.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
                                       UIViewAutoresizingFlexibleHeight);
        self.label.textAlignment = NSTextAlignmentCenter;
        self.label.adjustsFontSizeToFitWidth = YES;

        [self addSubview:self.label];
    }

    return self;
}

@end

CustomCollectionView.h:

@interface CustomCollectionView : UICollectionView

@end

对于整个项目,我使用了故事板和普通的 UIViewController。在这个视图控制器上,我在 Interface Builder 中添加了一个 UICollectionView。我将集合视图的出口连接到我的视图控制器,并再次设置数据源和委托方法到我的视图控制器。我还设置了 UICollectionViewCell 的自定义 class 和 Interface Builder 中的重用标识符。

所以一切都应该正常,但我只有黑屏。我缺少什么?您可以下载整个项目 here.

您正确配置了 CollectionView,只是您忘记了标签的颜色:)

    [self.label setTextColor:[UIColor whiteColor]];

希望对您有所帮助!

我遇到了同样的问题。黑屏似乎表明没有可用于集合视图的数据可显示。尝试更改集合视图的背景颜色,如果必须显示更改后的颜色,则您的集合视图正在运行。然后将一些 imageview 添加到带有标签的集合视图中(例如,为图像视图提供带有标签值的值 100),并使用 cellforItemAtIndexPath 将图像设置为图像视图。 (您可以使用自定义单元格执行此操作。但就目前而言,要使集合视图正常工作,为图像视图分配标签更合适)

UIImageView * ImageView = (UIImageView *)[cell viewWithTag:100];
ImageView.image = [UIImage imageNamed:[images objectAtIndex:indexPath.row]];

您需要在故事板中手动设置集合视图的背景颜色。

默认情况下它是黑色的(虽然在故事板编辑器中没有显示)

在Swift,

self.label.textColor = UIColor.whiteColor()
[self.collectionView registerNib:[UINib nibWithNibName:@"ProductCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"ProductCollectionViewCell"];

self.collectionView.backgroundColor = [UIColor clearColor];

我碰巧 collectionView 和 collection view cell 都有透明背景