私は通常、カスタムビューをプログラム的に作成し、独自のinitメソッド(例:initWithFrame:SomeParam:OtherParam)でプログラム的に初期化することを意図しています。そのようなカスタムビューをxibファイルと組み合わせて使用することは可能ですか?つまり、これらのカスタムビューのさまざまなサブビューとして、これらのサブビューが異なるinitメソッドを使用する必要があるかもしれない親ビューのxibファイルがありますか?xibファイルのiOSカスタムビュー
答えて
、カスタム初期化子を使用することはできません削除したい場合は、このビューは[self.view addSubview:myCustomView];
としてこれを追加します。それらはすべてinitWithCoder
を使用して初期化されます。
一般的には、そこから呼び出される共通の方法で、またはawakeFromNib
に任意の設定を行います。
外部からのビューのカスタムプロパティを設定する必要がある場合は、ビューコントローラのviewDidLoad
で行います。
もちろん可能です。既定のビューの内部ではなく、xib内のuiviewをドラッグします。 IBOutlet UIView *myCustomView;
を作成してから、もう一方のビューに接続します。 uは表示したいときにXIBファイルにカスタムビューを追加する場合、それは
[myCustomView removeFromSuperView];
だから、initWithSomeValue:value関数についてはどうですか? – Carina
これは、複数のXIBファイルにまたがってカスタムヘッダービューを共有したい場合には機能しません...各xibで正確に再定義する必要があります – LightningStryk
通常の方法でビューのxibを初期化し、参照を使用してカスタム設定を行います。我々は、明示的に初期化しないXIBを使用する場合1を取得した後、this-
-(void)initfunction{
UIView *containerView = [[[NSBundle mainBundle] loadNibNamed:@"myView" owner:self options:nil] lastObject];
containerView.property1 = xyz;//Customization
containerView.property2= abc;//Customization
containerView.frame = CGRectMake(x,y,z,p);//Customization
[rootView addSubview:containerView];
}
ポイントは、xib
ユーティリティ関数は、(UIView
の)初期化されたオブジェクトを返しているように、この部分は、initメソッドに入れることができますUIView
オブジェクトの場合、初期化されたオブジェクトを単なる通常のオブジェクトとして使用して、さらにカスタムの変更を加えることができます。
nibファイルのコンテンツの複数のコピーを作成したい場合は、UINib(iOS)クラスとNSNib(OS X)クラスが優れたパフォーマンスを発揮します。通常のnibローディングプロセスでは、ディスクからnibファイルを読み込み、それに含まれるオブジェクトをインスタンス化します。しかし、UINibとNSNibクラスでは、nibファイルはディスクから一度読み込まれ、内容はメモリに格納されます。それらはメモリに格納されているため、ディスクにアクセスする必要がないため、連続したオブジェクトセットの作成に要する時間が短くなります。
- 1ビューXIBファイルを作成します。プロジェクトを右クリック - インターフェイスBuilderを使用してビューを塗りつぶし>表示(例:あなたは「MyView.xib」を持つことになります)
- - >新規ファイル] - > [ユーザーインターフェイス
あなたの隣にメソッドを追加し、親コンポーネント
static UINib *nib = nil; - (UIView*)createNewViewFromNib: (NSString *)nibFileName { if(nib == nil) { nib = [UINib nibWithNibName:nibFileName bundle:nil ]; } // Unarchiving objects from the nib. You can do it multiple times to create a number of objects from same nib. NSArray* topLevelObjs = [nib instantiateWithOwner:self options:nil]; if (topLevelObjs == nil) { NSLog(@"Warning! Could not load nib file.\n"); return nil; } // We have only one view in the nib. return [topLevelObjs objectAtIndex:0]; }
使用しますが、再利用可能なペン先のオブジェクトに表示インスタンス化するためのコードの次の行:
UIView *item = [self createNewViewFromNib:@"MyView"]; // [self.view addSubview:item];
- 1. ビューコントローラでカスタムビューxibを使用するxib
- 2. iOSとunaviving xibファイル
- 3. iOS Localizable.stringsファイル(XIBファイル用)
- 4. モノビューのXIBファイル定義ビューにカスタムビューを追加する方法
- 5. iOSの - からNavController&カスタムビュー
- 6. xibファイルvsコード
- 7. IOS:タブバーアプリケーションのランドスケープとポートレートのカスタムビュー
- 8. ios xibファイルでカスタムUITableViewCellを作成する手順
- 9. ios 9でxibファイルからサブビューを追加するには?
- 10. iOSプロジェクトでXIBファイルを継承する方法は?
- 11. xibファイルのバッテリーアイコンの削除
- 12. Xcode 5と.xibファイルのローカライゼーション
- 13. iPhone SDKのカスタムビューがXIBから読み込まれていません。
- 14. NSViewでXibファイルをロード
- 15. NIBファイルをXIBファイルに変換する
- 16. .xibファイルのXMLテキストの取得
- 17. XIBファイルの変更後のアプリケーションクラッシュ
- 18. NIBファイル(XIB)のトップレイアウトガイドを追加する
- 19. ネストされたxibは別のxibファイルと一緒に存在しますか?
- 20. xibからのiOSのロードが機能しない
- 21. iOSのカスタムビューからコントローラにデータを渡すには?
- 22. UIViewController iOSフレームワークまたは従属プロジェクトのXIB
- 23. XIBファイルが表示されない
- 24. xibファイルからIBOutletsを取得
- 25. Cocoa - 別のxibにxibを表示
- 26. 目的ファイルのヘッダファイルにxibファイルを接続するには
- 27. iosカスタムコントローラリダイレクトobj-cコードをカスタムビューに配置する方法
- 28. メインXIBを読み込むとiOS 3.0でアプリがクラッシュする
- 29. カスタムビューの作成
- 30. カスタムビューのレイアウトヘルプ
ビューコントローラのviewDidLoadの前にsthを実行する必要がある場合は、それ ?私の見解は、本の1ページを表示するために使用されます。initWithPage:pageなどのカスタムinitメソッドがなければ、同時にストーリーボードも使用します。 – Carina
viewDidLoadの前に、ビューは存在しません。 initWithで行った設定を別のメソッドに移動し、プロパティを設定した後に必要な変更を行います。 – jrturton