0

这是一个在屏幕顶部显示蓝色视图的简单程序。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  self.window.backgroundColor = [UIColor whiteColor];

  UIViewController* vc = [[UIViewController alloc] init];
  CGFloat y = 20;
  if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
    y = 0;
  }
  UIView* sample = [[UIView alloc] initWithFrame:CGRectMake(0, y, 768, 100)];
  sample.backgroundColor = [UIColor blueColor];
  [vc.view addSubview:sample];

  self.window.rootViewController = vc;
  [self.window makeKeyAndVisible];
  return YES;
}

如果 iOS 版本为 7 或 6 及以下,我有逻辑将 y 变量设置为 0 或 20。有一个更好的方法吗?

4

2 回答 2

0

iOS 7 对 UI 的布局和自定义外观进行了一些更改。视图控制器布局、色调颜色和字体的更改会影响应用程序中的所有 UIKit 对象。此外,手势识别器 API 的增强功能使您可以更精细地控制手势交互。

请参考,苹果文档

于 2013-09-17T07:31:47.993 回答
0

就我而言,我决定完全按照你提到的那样做。它不像“那样干净”,它需要更多的工作,但它可以为您提供良好的精度,以防您没有针对太多设备。

于 2013-09-17T08:30:21.307 回答