【发布时间】:2011-06-05 19:28:44
【问题描述】:
我使用 Apple 的模板创建了一个基于视图的应用程序。我将代码添加到 viewDidLoad 方法中:
NSLog(@"origin (x, y): (%f, %f)", self.view.frame.origin.x, self.view.frame.origin.y);
NSLog(@"frame (w, h): (%f, %f)", self.view.frame.size.width, self.view.frame.size.height);
我的输出是:
2011-06-05 12:12:02.907 ViewBasedApp[1753:207] origin (x, y): (0.000000, 20.000000)
2011-06-05 12:12:02.908 ViewBasedApp[1753:207] frame (w, h): (320.000000, 460.000000)
为什么 XCode 将原点放在 (0, 20) 而不是 (0,0)?我没有更改任何其他默认设置。
我问的原因是当我使用基于窗口的应用程序并添加我自己的 UIViewController 子类并通过执行以下操作以编程方式添加它时:
SomeViewController *vc = [[SomeViewController alloc] initWithNibName:@"HomeView" bundle:nil];
self.homeViewController = vc;
[self.window addSubview:homeViewController.view];
[vc release];
我的输出是:
2011-06-05 12:14:47.405 WhereAmIiPhone[1780:207] origin (x, y): (0.000000, 0.000000)
2011-06-05 12:14:47.405 WhereAmIiPhone[1780:207] frame (w, h): (320.000000, 460.000000)
我想知道为什么原点有 20 分的差异,以及我可以做些什么来避免我的观点被 20 分偏离。谢谢。
【问题讨论】: