簡體   English   中英

在xib文件中拖放時會調用UIView的哪個init方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM