【问题标题】:What is the best way to display a UIView at the top of the screen in either iOS 6.1 or 7?在 iOS 6.1 或 7 中,在屏幕顶部显示 UIView 的最佳方式是什么?
【发布时间】:2013-09-11 20:38:37
【问题描述】:

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

- (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。有没有更好的方法来做到这一点?

【问题讨论】:

  • ios7 指南包括一些新的属性,这些属性可以在控制器上设置,允许视图占状态栏。但是,由于它是 NDA 的,我将向您推荐他们的文档,该文档可从开发门户访问。
  • 您是否尝试过简单地将其固定在顶部?

标签: ios objective-c cocoa-touch ios6 ios7


【解决方案1】:

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

请参考apple doc

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      相关资源
      最近更新 更多