这里是自定义集合视图,下面的标签是(我设计的评级视图)。
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initGrayStarView];
[self initYellowStarView];
[self initRatingLabel];
}
return self;
}
但我发现每次评级视图都没有出现(图像视图和标签出现)。然后我发现这是因为我没有调用评级视图的init方法,所以它是nil,但是为什么呢?
这是初始化方法。
但它从不调用它,它只调用layoutSubview方法。
考虑这种模式...
-(id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self _setup];
}
return self;
}
-(id)initWithCoder:(NSCoder *)aCoder {
if (self = [super initWithCoder:aCoder]) {
[self _setup];
}
return self;
}
-(void)_setup {
blah;
blah;
blah;
}
尝试“知道正在发生什么”,但如果你刚刚开始,这会让你成功。
在 awakeFromNib: 方法中。在您的实现文件中覆盖它,如下所示:
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
[self setupStuff];
}