0

カスタム メニュー画面を各 xib ファイルに配置する必要があるプロジェクトがあります。ビューを作成してサブビューとして追加することでこれを実行できることを理解しています。

そのビューを1つのファイルで作成し、必要な場所で呼び出したいのですが、これを実現する方法がわかりません。

助けてください...

4

1 に答える 1

1

これは、まさにこれを行っている私の例です。

ロード可能なビューの作成

カスタム テーブルビュー セルを作成するためにこれを行いましたが、これはどのタイプのクラスでも行うことができます。

重要なのは、Interface Builder で項目にカスタム クラスが設定されていることです。

======更新======

私が考えていなかったもう一つのことはです。特定のタイプのビューを作成し、そのビューを各 XIB ファイルに入れたいと思うかもしれません。

もしそうなら。次に、UIViewのサブクラスである新しいクラスを作成できます

次に、UIView を xib に (何も含めずに) 追加し、ID エクスプローラーで「カスタム クラス」の値を設定します。これは、この UIView が実際には「カスタム クラス」タイプであることを Objective C に伝えます。Alloc はカスタム クラスを初期化し、そこに配置します。このイベントでは、コードを使用してメニューやその他のものを構築でき、以前に挿入した空白の UIView が実際にあったクラスに配置されます。

私のよくあるケース

アウトレットに接続された「コンテナ」UIViewを使用し、上記にリンクされているnibLoaderメソッドを使用して、作成されたペン先からビューを引き出し、そのオブジェクトをコンテナのサブビューとして追加します

@interface HomeViewController  ()

@property (nonatomic, strong) MyCustomView *customView;

@end

@implementation HomeViewController 

@synthesize customViewContainer = _customViewContainer; // IBOutlet from header
@synthesize customView = _customView;
- (MyCustomView*) customView{
    if (_customView == nil){ // Lazy Load
        // Load From Nib Loader linked to above
    }
    return _customView;
}

- (void) viewDidAppearAnimated:(BOOL) animated {
    this.customView.frame = this.customViewContainer.bounds;
    [this.customViewContainer addSubView:this.customView];
}

@end 
于 2012-12-27T20:25:05.663 に答える