私は無限スクロールUICollectionView
seen 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
のカスタムクラスと再利用識別子もInterface Builderで設定しました。
したがって、すべてが機能するはずですが、黒い画面しか表示されません。何が欠けていますか?プロジェクト全体をダウンロードできます ここ 。
ラベルの色を忘れただけで、CollectionViewを正しく構成しています:)
[self.label setTextColor:[UIColor whiteColor]];
それが役に立てば幸い!
同じ問題がありました。黒い画面は、表示するコレクションビューで使用可能なデータがないことを示すもののようです。コレクションビューの背景色を変更してみてください。変更した色が表示される場合は、コレクションビューが機能しています。タグを付けてコレクションビューに画像ビューを追加し(例:画像ビューのタグ値を100に設定)、cellforItemAtIndexPathを使用して画像を画像ビューに設定します。 (カスタムセルを使用してこれを行うことができます。ただし、今のところ、コレクションビューを機能させるには、imageviewのタグを使用した割り当てが適しています)
UIImageView * ImageView = (UIImageView *)[cell viewWithTag:100];
ImageView.image = [UIImage imageNamed:[images objectAtIndex:indexPath.row]];
collectionViewとコレクションビューのセルの両方に透明な背景があることが偶然起こりました
[self.collectionView registerNib:[UINib nibWithNibName:@"ProductCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"ProductCollectionViewCell"];
self.collectionView.backgroundColor = [UIColor clearColor];
スウィフトでは、
self.label.textColor = UIColor.whiteColor()