使用上的Xcode 4.3.2空应用程序模板,创建一个项目,所以没有参与NIB。谁调整了我的观点? (iOS上)
在FooViewController.m
:
-(void) loadView {
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor yellowColor];
self.view = view;
}
因此,一个视图被实例化并分配给self.view
。两种方法:
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"self.view is %@", self.view);
}
-(void) viewDidAppear:(BOOL)animated {
NSLog(@"self.view is %@", self.view);
}
而第二个打印出
self.view is <UIView: 0x18e4d0; frame = (0 20; 768 1004); layer = <CALayer: 0x182a00>>
所以viewDidLoad
和viewDidAppear
之间,该视图被调整大小的第一种方法将打印出
self.view is <UIView: 0x18e4d0; frame = (0 0; 0 0); layer = <CALayer: 0x182a00>>
。调整它的机制是什么?我们可以指望它吗?因为即使马特纽伯格,高度重视的书籍编程iOS,第二版的作者,这样做(如第508页)。
如果我添加了'[[UIApplication的sharedApplication] keyWindow] .autoresizesSubviews = NO;'到viewDidLoad'的'年底,观点依然是调整 –