这里是自定义集合视图,下面标签是(我设计的评级视图)
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initGrayStarView];
[self initYellowStarView];
[self initRatingLabel];
}
return self;
}
但我发现每次评分视图都没有显示(图片视图和标签都没有)。然后我发现它是因为我没有将init方法称为评级视图,所以它没有,但为什么呢? 这是init方法。
但它永远不会调用它,它只调用layoutSubview方法。
答案 0 :(得分:1)
考虑这种模式......
-(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;
}
尝试"知道发生了什么"但如果您刚开始,那将帮助您完成任务。希望它有所帮助
答案 1 :(得分:0)
它位于awakeFromNib:方法中。在您的实现文件中覆盖它,如下所示:
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
[self setupStuff];
}