[英]Which init method for UIView will be called when using drag and drop in xib file
這是自定義集合視圖,下面的標簽是(我設計的評級視圖)。
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initGrayStarView];
[self initYellowStarView];
[self initRatingLabel];
}
return self;
}
但我發現每次評級視圖都沒有出現時(圖像視圖和標簽出現)。 然后我發現這是因為我沒有調用評級視圖的 init 方法,所以它是 nil,但為什么呢?
這是 init 方法。
但它從不調用它,它只調用 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];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.