Ios 在xib文件中使用拖放时,将调用UIView的哪个init方法
这是自定义集合视图,标签下方是(评级视图i设计)。Ios 在xib文件中使用拖放时,将调用UIView的哪个init方法,ios,initialization,uicollectionviewcell,Ios,Initialization,Uicollectionviewcell,这是自定义集合视图,标签下方是(评级视图i设计)。 但我发现每次评级视图没有出现时(图像视图和标签都出现了)。然后我发现这是因为我没有调用评级视图的init方法,所以它是nil,但为什么呢? 这是init方法 但它从不调用它,它只调用layoutSubview方法 它位于awakeFromNib:方法中。在实现文件中覆盖它,如下所示: - (void)awakeFromNib { [super awakeFromNib]; // Initialization code [self
但我发现每次评级视图没有出现时(图像视图和标签都出现了)。然后我发现这是因为我没有调用评级视图的init方法,所以它是nil,但为什么呢?
这是init方法 但它从不调用它,它只调用layoutSubview方法
它位于awakeFromNib:方法中。在实现文件中覆盖它,如下所示:
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
[self setupStuff];
}
考虑一下这种模式
-(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;
}
试着“知道发生了什么”,但如果你刚刚开始的话,这会帮你度过难关。希望它有助于在故事板调用initWithCoder中生成的视图:可能的重复虽然我已经找到了解决问题的方法,但这超出了我的想象,我确实帮了很多忙。
-(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;
}