【问题标题】:How can I set the backgroundColor of a WKInterfaceController programmatically?如何以编程方式设置 WKInterfaceController 的 backgroundColor?
【发布时间】:2014-12-30 00:48:29
【问题描述】:

我找不到任何以编程方式更改 Watch 应用界面整体背景颜色的方法。

因此,我尝试创建一个全屏 WKInterfaceGroup 并更改其背景颜色。

    centralGroup.setBackgroundColor(UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0))

但是,我仍然有未填充的圆角和边框上的线条。

有什么方法可以实现我的目标,即填充屏幕的边到边背景颜色?

【问题讨论】:

  • apple devforum 说还不能做。但是我已经在 bugreport.apple.com 上创建了一个请求
  • 默认背景是黑色,不是紫色,对吗?或者这可能已经在 beta 3 中解决了?
  • 它是黑色的。我在情节提要中更改了它。但我不能在运行时做到这一点
  • 你能解释一下你是如何在故事板的边缘将此边缘颜色更改为紫色/蓝色的吗?这是通过使用背景图片吗?

标签: watchkit


【解决方案1】:

虽然您可以在情节提要中为 WKInterfaceController 设置背景颜色,但目前的 Xcode 6.2 beta 3 中没有 API 可以让您以编程方式设置它。

但是,您可以创建一个全屏 WKInterfaceGroup 并以编程方式设置它的颜色。如果你也将setCornerRadius: 设为 0,你会得到以下结果: 显然,这里的边缘仍然有黑线。另一种可能性是,将纯色图像设置为背景可能会使用其中一个缩放选项进行缩放以填充全屏,但我对此进行了测试,结果与上述相同。

但是,重要的是要考虑将在其上运行的硬件。 Apple 在其关于 Watch 的公开声明中不止一次表示,层压屏幕和边缘之间的交集是如此无缝,以至于您基本上无法分辨屏幕的结束位置和边缘的开始位置。从表面上看,只要您在界面生成器中将 WKInterfaceController 的背景颜色设置为清除或黑色,使这些边缘为黑色以匹配屏幕环绕,那么这些黑线对最终用户应该是不可见的并且是您可以放心地忽略。

【讨论】:

    【解决方案2】:

    这就是我的做法:

    1. WKInterfaceGroupsetCornerRadius添加到0
    2. 转到WKInterfaceController Attribute Inspector 并将Left/Right insets 更改为0(图1)(这将删除左右两侧多余的黑线)
    3. 将 WKInterfaceGroup 的颜色更改为您想要的任何颜色:)

    图1

    【讨论】:

      【解决方案3】:

      将您的 WKInterfaceController 的插图更改为自定义并将全部设置为 0。此外,将组的角半径也更改为 0。享受吧。

      【讨论】:

      • aumanets 的回答更彻底,所以我 +1 他的和你的 -1 以帮助他们更好地分类。
      【解决方案4】:

      尝试将WKInterfaceGroup的圆角半径更改为0。您可以使用setCornerRadius:更改圆角半径。

      【讨论】:

      • 还是界面左右两边有边线
      • 我无法在最左右边缘放置一个组。
      • 不要忘记将控制器的边缘插入设置为 0。默认情况下,左右各为 1。
      • 当然,这些边线在实际手表上是看不到的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多