2012-03-21 9 views
0

UIButtonの内部に小さなインジケータを作成しようとしています。 Iveはカスタムビューを配置し、Interface builderのカスタムクラスを自分のクラスに変更しました。 Iveは同じタイプのIBOutletを作成し、インターフェースビルダーにも接続しました。サブクラスメインビューで初期化したときにUIViewが読み込まれない

私のサブクラスでは、次のようになります。

- (UIView *)initWithNumber:(NSInteger *)number 
{ 
    self = [super initWithFrame:CGRectMake(0, 0, 34, 17)]; 
    if (self) { 
     [self setBackgroundColor:[UIColor blueColor]]; 

    } 
    return self; 
} 

その後、私がメインビューで:

self.indicatorControl = [indicatorControl alloc] initWithNumber:(NSNumber *)32]; 

しかし、そのビューを初期化したときに表示負荷背景色を変更しませんか?なぜこれは起こりませんか?私がsetBackgroundColorメソッド呼び出しをawakeFromNibに入れたら、それは動作しますが、初期化を呼び出すと、初期化して私のビューを返すようにします。これはうまくいくはずです。

答えて

1

IBOutletをそのまま使用すると、インターフェイスビルダーはボタンを再初期化し、コード内ボタンの作成を上書きします。コードやインターフェイスビルダのボタンを初期化しますか?

私がお勧めします:

コード:は、インタフェースビルダーからボタンをドリンクし、親ビューコントローラ インターフェイスビルダーののviewDidLoadでコードを置く:は、インターフェースビルダーで青に背景を設定したり、初期化を実行しますin awakeFromNib

+0

awakeFromNibを使用して、どのようにして隠したいかを設定しました。次に、インジケータに必要な番号を設定するメソッドを作成し、それ自体が非表示に設定されますそこに...素晴らしい作品..説明に感謝します。 – JAManfredi

関連する問題