【问题标题】:Change the default black background color更改默认的黑色背景颜色
【发布时间】:2017-04-15 02:30:02
【问题描述】:

我在我正在创建的应用程序中使用.aspectFit,并且由于使用.aspectFit,整个场景不会填满屏幕(这是我想要的)。但是,如果可能的话,我想将黑色背景更改为红色。目前我的场景背景颜色是绿色,背景颜色是黑色(必须是默认的)。

我在互联网上做了一些阅读,有人建议可以在 AppDelegate 中更改黑色背景,但是当我使用下面的代码时似乎没有任何反应(背景颜色仍然是黑色)。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    self.window?.backgroundColor? = UIColor.red

    return true
}

我是否更改了错误的背景颜色,或者我遗漏了什么?任何帮助将不胜感激。

【问题讨论】:

  • 您的代码可以流畅运行,但在绿色后面。黑色表示没有任何场景,是系统提供的默认颜色。
  • 啊,那你就不能改系统颜色了?
  • 黑色比红色好看:)!
  • 哈哈是的,我只是将红色(和绿色)用于测试目的。
  • @Jarron 请问你有没有找到解决方案?

标签: swift colors sprite-kit background-color


【解决方案1】:

缩放模式aspectFit 在两个维度上均等地缩放内容,并确保所有场景的内容都可见。

计算每个维度的比例因子,取较小者 两个被选中。场景的每个轴都按相同的比例缩放 比例因子。这保证了整个场景是可见的,但 可能需要在视图中添加信箱。

要更改场景的背景颜色,您无需更改 window 颜色,您只需执行以下操作:

scene.backgroundColor = .black

如果你想改变 window 背景颜色,你也可以在你的场景中使用:

let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window?.backgroundColor = .red

【讨论】:

  • 嗨 Alessandro,感谢您的回答,但我不需要将场景颜色更改为红色,我想将可见的无场景区域更改为红色。
  • “可见的无场景区域”是什么意思?你能更好地解释这部分吗?
  • 在我的问题图片中,您可以看到黑色和绿色区域。绿色区域是我的场景,黑色是无场景区域(不知道你会怎么称呼它)。绿色只占屏幕的一部分,因为我正在使用 aspectFit(这是我想要的,但我想更改黑色)。
  • 我希望精灵在离开绿色区域时不可见,这就是目前发生的情况。但是我不想要黑色。我可以通过在 aspectFill 场景中创建一个cropNode 来实现我想要的,但我认为能够在 aspectFit 场景中更改黑色将是最简单的选择。
  • 好吧,你不能。渲染场景后,其内容被复制到呈现视图中。如果视图和场景大小相同,则可以直接将内容复制到视图中,否则将缩放场景以适应视图。 scaleMode 属性确定内容的缩放方式。信箱是在视图中创建的,因此无法更改它的颜色。
猜你喜欢
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 2020-04-03
  • 2018-01-05
  • 2022-01-15
  • 1970-01-01
  • 2014-10-04
  • 1970-01-01
相关资源
最近更新 更多