私は他のUIViewControllerをサブビューとして追加するルートUIViewControllerを持っています。現在、各サブビューは低すぎます(カスタムビルドのタブバーを覆っています)。次のようにしようとすると、うまくいきません。
// Test setting frame size to see if it works
self.view.frame = CGRectMake(0, 0, 200, 200);
フレームサイズを変更することはありません。
つまり、私の質問は、UIViewControllerがサブビューとして追加された後に初期化されるときに、フレームをどのように設定できるのですか?
@Nic私はあなたがその他のビューを追加しているとき、そのときに他のビューのフレームサイズを次のように定義するべきだと思います:
Someviewcontroller *c = initWithNibName
c.view.frame = CGRectMake(0, 0, 200, 200);
[self addSubView:c];
これが機能するかどうかはわかりませんが、このようなものです。
まず、フレームのサイズが実際に変更されていないことを確認します。おそらくサイズは/ is /変更されますが、内容がクリップされることを期待しています。この動作は、UIViewではデフォルトで有効になっていません。次のように設定する必要があります。
[[self view] setClipsToBounds:YES];
新しいフレームを設定した後、フレームを再確認してサイズが変化していないことを確認するには、次のように記録してみてください。
NSLog(@"New frame is: %@", NSStringFromCGRect([[self view] frame]));
または、変更後にブレークポイントを設定し、デバッガーで値を検査します。
その後、常にあります...
// Screen, less StatusBar
CGRect l_RectFrame = [UIScreen mainScreen].applicationFrame;
または...
// Entire Screen
CGRect l_RectFrame = [UIScreen mainScreen].bounds;
MyView *l_aView = [[MyView alloc] initWithFrame:l_RectFrame];
...