自己完結型のUICollectionView
サブクラス (独自のデータ ソースおよびデリゲートとして機能する) を作成して、別の viewController にロードできるようにしたいと考えています。これが私がこれまでに持っているものです:
CustomCollectionView.h
@interface CustomCollectionView : UICollectionView <UICollectionViewDataSource, UICollectionViewDelegate>
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
@end
CustomCollectionView.m
#import "SSCalendarView.h"
@implementation SSCalendarView
@synthesize collectionView;
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];
[self registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Identifier"];
[self addSubview:collectionView];
}
return self;
}
// Below are UICollectionViewDataSource and UICollectionViewDelegate methods
@end
CustomCollectionView.xib
- ビューが 1 つだけ含まれています -
UICollectionView
。そのクラスはに設定されていますCustomCollectionView
- ファイルの所有者のクラスもに設定されています
CustomCollectionView
- ファイルの所有者は
UICollectionView
のデリゲートであり、データ ソースです
ここでかなり多くのことが間違っていることを理解しています。しかし、おそらくこれを出発点として使用できます。
私の質問は次のとおりです。
- このサブクラスを正しく実装するには? ビューをxibから完全にロードしたい
- まず、潜在的な MVC 違反 (このサブクラスがすべてを実行します) は別として、UICollectionView を独自のデータ ソースおよびデリゲートにすることはできますか?
- 上記が可能である場合、View Controller で使用するこのサブクラスのインスタンスを正しく作成するにはどうすればよいですか?