80

???viewDidLoadの にUIViewController似たものはありますか? UIViewがロードされたらすぐに通知を受けUIView(サブクラスのUIView)、いくつかのアクションを実行する必要があります。

4

1 に答える 1

274

実行する必要があるアクションの種類に応じて、いくつかの手法があります。

  1. -(id)initWithFrame:(CGRect)frame- UIView の指定された初期化子。ビューが nib からロードされない限り、常に UIView に送信されて初期化されます。
  2. -(id)initWithCoder:(NSCoder *)coder- ビューが nib からロードされるたびに、UIView を初期化するために常に送信されます。
  3. -(void)awakeFromNib- nib 内のすべてのオブジェクトが初期化および接続された後に送信されます。nib からオブジェクトをロードする場合にのみ適用されます。スーパーを呼び出す必要があります。
  4. -(void)willMoveToSuperview:(UIView *)newSuperview- ビューがサブビューとして別のビューに追加される直前に送信されます。newSuperviewスーパービューからビューを削除すると、nil になる場合があります。
  5. -(void)willMoveToWindow:(UIWindow *)newWindow- ビュー (またはそのスーパービュー) がウィンドウに追加される直前に送信されます。newWindowウィンドウからビューを削除すると、nil になる場合があります。
  6. -(void)didMoveToSuperview- ビューがビュー階層に挿入された直後に送信されます。
  7. -(void)didMoveToWindow- ビューがウィンドウ プロパティ セットを取得した直後に送信されます。-

基本的に、初期化中 (1 & 2)、nib からのロード後 (3)、ビュー階層への挿入前 (4 & 5)、その後 (6 & 7) にアクションを実行することを選択できます。

于 2010-12-21T18:44:34.827 に答える