UIViewcontroller コンテインメントを実装しています。以下の例では、ルートコントローラーで子コントローラーのフレームサイズを設定しています。子ビューは設定したサイズで表示されますが、container1 内の境界を確認すると、設定したサイズとは異なるサイズが報告されます。
ルートコントローラー (コンテナー)
- (void)viewDidLoad
{
[super viewDidLoad];
self.containA = [[Container1 alloc]init];
self.containB = [[Container2 alloc]init];
self.containA.view.frame = CGRectMake(50, 50,50, 50);
self.containB.view.frame = CGRectMake(50, 50, 300, 300);
[self addChildViewController:self.containA];
[self addChildViewController:self.containB];
[self.view addSubview:self.containA.view];
コンテナ1
-(void)viewDidLoad {
[super viewDidLoad];
UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
//[self.view addSubview:view];
self.view = view;
self.view.backgroundColor = [UIColor redColor];
[view release];
NSLog(@"view dims %f %f",self.view.bounds.size.width,self.view.bounds.size.height);
}
コンテナー 1 ビューからのコンソール出力は 768.000000 1004.000000 を暗くします
この問題は、ビュー フレームを UIScreen メイン画面]applicationFrame に設定することに関連していると思いました。そのため、このコードをすべて削除して、uiview が自動的に作成されるようにしました。問題はまだ残っています..