【发布时间】:2013-11-09 21:08:22
【问题描述】:
我想创建一个自包含的UICollectionView 子类(充当它自己的数据源和委托),以便我可以在不同的视图控制器中加载它。到目前为止,这是我所拥有的:
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
- 仅包含一个视图 -
UICollectionView。它的类设置为CustomCollectionView - 文件所有者的类也设置为
CustomCollectionView - 文件的所有者是
UICollectionView的代表和数据源
我知道我在这里有很多问题。但也许我们可以以此为起点。
我的问题是:
- 如何正确实现这个子类?我想完全从 xib 加载视图
- 首先,除了潜在的 MVC 违规(这个子类可以解决所有问题)之外,UICollectionView 可以作为自己的数据源和委托吗?
- 如果上述方法可行,如何正确创建此子类的实例以在我的视图控制器中使用?
【问题讨论】:
标签: ios uicollectionview subclass xib