1

使用するのは間違っていますか

viewController.view = newView;

それ以外の

[viewController.view addSubView:newView];

1つ目は、viewControllersによって自動的に作成されたビューの追加レベルを削除します。このようにnewViewを作成すると、

UIView * newView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; またはこのUIViewのように*newView= [[UIView alloc] initWithFrame:self.view.frame];

addSubviewは、frame.origin.yをステータスバーの高さだけ置き換えます。

誰かがどちらの方法を使用するか、または使用しない理由を知っていますか?

4

1 に答える 1

0

なぜこれをしたいのですか?カスタム インターフェイスを作成する場合は、ViewController の -viewDidLoad メソッドにサブビューを追加する必要があります。
-loadView メソッド以外で VC のビューを設定することはお勧めしません。

サブビューを追加し、それを VC のビューとまったく同じサイズにしたい場合は、applicationFrame を使用しないでください。

私はむしろ [[UIView alloc] initWithFrame:self.view.frame]; を使用したいと思います。
また、境界が変更された場合に備えて、自動サイズ変更マスク (柔軟な幅と高さ) を適用する必要があります。これは、たとえばポップオーバーで VC を表示するときに発生します。

于 2011-07-19T14:30:48.137 に答える