Ответ 1
Вы правильно настроили CollectionView, просто забыли цвет метки:)
[self.label setTextColor:[UIColor whiteColor]];
Надеюсь, что это поможет!
Я пытаюсь переопределить инфинитивную прокрутку UICollectionView
, увиденную здесь. Вещи, которые мне не хватало:
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
. На этом контроллере представления я добавил UICollectionView
в Interface Builder. Я подключил выход из коллекции с помощью моего контроллера представления и снова настроил источник данных и делегировал методы моему контроллеру. Я также установил пользовательский класс UICollectionViewCell
и идентификатор повторного использования в Interface Builder.
Итак, все должно работать, но я получаю только черный экран. Что мне не хватает? Вы можете загрузить весь проект здесь.
Вы правильно настроили CollectionView, просто забыли цвет метки:)
[self.label setTextColor:[UIColor whiteColor]];
Надеюсь, что это поможет!
У меня была такая же проблема. Черный экран, по-видимому, является индикатором отсутствия данных, доступных для отображения коллекции. Попробуйте изменить цвет фона в представлении коллекции, если этот измененный цвет отобразится, ваш просмотр коллекции работает. Затем добавьте некоторое изображение в представление коллекции с тегом (пример дает значение 100 с тегом для представления изображения), а cellforItemAtIndexPath устанавливает изображения в представление изображения. (Вы можете сделать это с помощью настраиваемой ячейки. Но пока для того, чтобы получить представление коллекции, назначение с тегом для изображения лучше подходит)
UIImageView * ImageView = (UIImageView *)[cell viewWithTag:100];
ImageView.image = [UIImage imageNamed:[images objectAtIndex:indexPath.row]];
Вам нужно вручную установить цвет фона в виде коллекции в раскадровке.
По умолчанию он черный (хотя и не отображается в редакторе раскадровки)
мне сопутствовало, что и cellView, и ячейка просмотра коллекции имели прозрачные фоны
В Swift,
self.label.textColor = UIColor.whiteColor()
[self.collectionView registerNib:[UINib nibWithNibName:@"ProductCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"ProductCollectionViewCell"];
self.collectionView.backgroundColor = [UIColor clearColor];