【问题标题】:Change color behind app on rotation旋转时更改应用程序后面的颜色
【发布时间】:2014-03-15 17:16:53
【问题描述】:

当 iOS 应用旋转时,当应用处于纵向和横向之间时,它会显示黑色背景。是否可以将此颜色从默认的黑色更改为白色?更改 UIWindow 的背景颜色将无济于事。以下是旋转期间 Safari 中黑色背景的示例:

【问题讨论】:

  • 您是要更改 Safari 或您的应用程序的颜色吗?
  • 我的应用,Safari 只是一个例子。很抱歉造成混乱。
  • 我真的很想知道苹果对改变这种默认行为的应用程序的立场是什么(即,如果它会让你的应用程序被 AppStore 拒绝,如果他们认为你使用任何黑客手段来修复它可能中断操作系统的未来版本等)
  • 我在 App Store 审查指南中没有发现任何表明这样做的应用程序可能会被拒绝的内容;但是,请记住,iOS 9 带来了提出问题时不存在的新功能。更具体地说,分屏多任务意味着您将无法更改整个屏幕的背景。

标签: ios screen-rotation


【解决方案1】:

我做过类似的事情,但我现在找不到源,但这是一个想法:

创建并添加一个明显更大的视图作为后备视图并将其居中。

添加UIWebView 作为背景为白色的大视图的子视图。

也重新定位UIWebView 的中心。

【讨论】:

  • 太棒了。我正在删除我的答案并投票给你!多么棒的把戏。
  • 谢谢!我希望 Apple 提供了一种设置颜色的方法,但这个解决方案非常简单且非常干净。现在只需要为视图找到完美的尺寸:)
【解决方案2】:

您可以这样做:

添加一个 UIViewController 并将其设置为初始 VC(在屏幕截图中为 MainVC)。
添加两个 UIViewContainer:第一个用于保存您的背景视图,第二个用于您的其他 vcs。
覆盖后台VC的实现文件中的viewDidLayoutSubviews(本例为红色VC的.m文件)

- (void)viewDidLayoutSubviews { [超级 viewDidLayoutSubviews]; //一些硬代码:) self.view.frame = CGRectMake(-100, -100, 1136, 1136); }

这样做之后你会得到这样的东西:

我知道这不是最好的解决方案,但您可以这样做,直到找到最好的解决方案。

【讨论】:

  • 在“viewDidLayoutSubviews”中设置框架的想法对我有用。
【解决方案3】:

我遇到了同样的问题。据我了解,您想删除黑色背景。我使用的最简单的解决方案是设置 window clipsToBounds = true 而不是 rootViewController。

window?.clipsToBounds = true

【讨论】:

    【解决方案4】:

    您可以通过将具有超大边界的空通用视图控制器添加到您的根视图控制器中并使其成为视图层次结构中的最低层来解决该问题:

    CGFloat length = 2*MAX(rootViewController.view.bounds.size.height, rootViewController.view.bounds.size.width);
    
    UIView *oversizedBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, length, length)];
    oversizedBackgroundView.center = vc.view.center;
    oversizedBackgroundView.backgroundColor = [UIColor whiteColor];
    rootViewController.view.clipsToBounds = NO;
    [rootViewController.view addSubview:oversizedBackgroundView];
    [rootViewController.view sendSubviewToBack:oversizedBackgroundView];
    
    self.window.rootViewController = rootViewController;
    [self.window makeKeyAndVisible];
    

    这里的重点是将clipsToBounds设置为NO

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 2019-08-17
      • 2010-12-15
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2022-06-18
      相关资源
      最近更新 更多