Jus*_*ahn 1 objective-c uiwindow ios appdelegate
我在AppDelegate类中创建了一个TabBar VC,通过[[UIScreen mainScreen] bounds]设置窗口框架.由于我显示状态栏,因此高度应为460,但它似乎为480.如果我手动将高度设置为460,则会在标签的底部切断触摸识别.下面是代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIColor *brownNavBarColor = [[UIColor alloc] initWithRed:0.78f green:0.56f blue:0.06f alpha:1.0f];
[application setStatusBarHidden:NO];
CGRect windowRect = [[UIScreen mainScreen] bounds];
self.window = [[UIWindow alloc] initWithFrame:windowRect];
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
NSLog(@" appFrame %f", appFrame.origin.y);
NSLog(@" appFrame %f", appFrame.size.height);
NSLog(@" window.frame %f", self.window.frame.origin.y);
NSLog(@" window.frame %f", self.window.frame.size.height);
NSLog(@" window.bounds %f", self.window.bounds.origin.y);
NSLog(@" window.bounds %f", self.window.bounds.size.height);
[self.window makeKeyAndVisible];
self.ingredientTabVC2 = [[NewIngredientViewController alloc] initWithNibName:nil bundle:NULL];
self.ingredientNC2 = [[UINavigationController alloc] initWithRootViewController:self.ingredientTabVC2];
[self.ingredientNC2.navigationBar setTintColor:brownNavBarColor];
self.ingredientTabVC3 = [[IngredientTabViewController alloc] initWithNibName:nil bundle:NULL];
self.ingredientNC3 = [[UINavigationController alloc] initWithRootViewController:self.ingredientTabVC3];
[self.ingredientNC3.navigationBar setTintColor:brownNavBarColor];
self.tabBarController = [[UITabBarController alloc] initWithNibName:nil bundle:NULL];
self.tabBarController.viewControllers = [[NSArray alloc] initWithObjects: self.ingredientNC2, self.ingredientNC3, nil];
[self.window setRootViewController:self.tabBarController];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
这给出了日志输出
2013-02-12 23:04:21.867 SingleTest[24221:c07] appFrame 20.000000
2013-02-12 23:04:21.868 SingleTest[24221:c07] appFrame 460.000000
2013-02-12 23:04:21.869 SingleTest[24221:c07] window.frame 0.000000
2013-02-12 23:04:21.870 SingleTest[24221:c07] window.frame 480.000000
2013-02-12 23:04:21.870 SingleTest[24221:c07] window.bounds 0.000000
2013-02-12 23:04:21.871 SingleTest[24221:c07] window.bounds 480.000000
Run Code Online (Sandbox Code Playgroud)
有人可以解释这种差异背后的原因吗?
来自以下文档UIScreen:
applicationFrame:
此属性包含屏幕边界减去状态栏占用的区域(如果可见).使用此属性是检索应用程序初始窗口大小的推荐方法.矩形以磅为单位指定.
界限:
包含屏幕的边界矩形,以点为单位.(只读)
bounds包括状态栏,applicationFrame没有.
另请注意,applicationFrame它的y原点是20.
您希望主窗口填满屏幕.设置窗口时rootViewController,它将applicationFrame自动调整.
| 归档时间: |
|
| 查看次数: |
2080 次 |
| 最近记录: |