已经有几个问题,但没有一个令人满意的答案。我想确切地知道为什么框架和边界似乎是错误的,使用最简单的例子,并且有人告诉我处理它的正确方法是什么......
我制作了一个没有情节提要的单视图应用程序,并且我只勾选了对横向的支持。然后在 didFinishLaunching 方法中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
ViewController *vc = [[ViewController alloc] init];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
return YES;
}
在视图控制器中:
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor redColor];
}
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"%.1f,%.1f",self.view.frame.size.width,self.view.frame.size.height);
}
然后输出是 768.0,1024.0 - 这显然是错误的,即使红色已经填满了横向尺寸的屏幕。所以我不能依赖 self.view.frame 或 self.view.bounds 来安排或调整子视图的大小。
避免此类问题的最新和“正确”方法是什么?(不使用笔尖或情节提要,也没有粗俗的宽度和高度交换)