我正在实施 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 main screen]applicationFrame 相关。所以我删除了所有这些代码,以便自动创建 uiview。问题依旧。。