7

UIViewControllerルートビューをサブクラス化されたUIViewに置き換えようとしています。

iPhone SDKのUIViewControllerクラスリファレンスの[概要]セクションには、次のように記載されています。

UIViewControllerの各インスタンスを使用して、フルスクリーンビューを管理します。単純なビューコントローラの場合、これには、アプリケーションコンテンツの表示を担当するビュー階層の管理が含まれます。一般的なビュー階層は、ルートビュー(このクラスのviewプロパティで使用できる参照)と、実際のコンテンツを表示する1つ以上のサブビューで構成されます。

次に、viewプロパティのリンクをたどると、次のように表示されます。

ビューコントローラに関連付けられたビューコントローラがない場合は、loadViewメソッドをオーバーライドし、それを使用してルートビューとそのすべてのサブビューを作成する必要があります。

このコードがloadViewに配置された場合、MyViewと呼ばれるUIViewの独自のサブクラスを使用していると仮定して、ルートビューが作成されます。

self.view = [MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

ありがとう // :)

4

2 に答える 2

6

あなたは正しいです。loadView関数は、ビューを表示する必要があるときに呼び出されます。viewControllerのviewプロパティは、などの関数を使用するときに表示されるビューですpresentModalViewController:animated:。を使用する代わりにNIBからビューをロードする場合はloadView、ビューのクラスを、そのビューの[プロパティ]タブでカスタムサブクラスに変更するだけです。

于 2009-10-14T02:50:15.817 に答える
1

viewプロパティを設定したものはすべて保持されることに注意してください。したがって、どちらかを使用する必要があります

self.view = [[[MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)] autorelease];

また

MyView *v = [[MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
self.view = v;
[v release];

それをバランスさせるために。

于 2009-10-14T05:06:54.700 に答える