如何以编程方式更改 WKInterfaceObject 的高度类型?

How do I change the height type of a WKInterfaceObject programmatically?

在 WatchKit 故事板中,如果您添加 WKInterfaceObject(例如 WKInterfaceGroup),您有以下高度和宽度选项:

  1. 大小适合内容
  2. 相对于容器(价值和调整)
  3. 固定(值)

在WKInterfaceObject头文件中,只有一个属性与高度相关:

func setHeight(height: CGFloat)

...在文档中指出:

Sets the absolute height (in points) of the object.

这看起来与选项 #3(固定值)相对应。

如何以编程方式选择其他 2 个选项中的任何一个(例如,如果我想将大小更改为 "Relative to container" 怎么办)?

我怀疑是否有那些 API。 WatchKit 目前非常有限。未来的版本可能会有更多用户要求的功能。

目前您不能将高度更改为固定值以外的任何值,因此请在故事板中创建多个对象,每个对象都配置为您想要的高度选项,并根据需要 hide/show 它们以获得您正在寻找的效果。由于WatchKit中的容器都是堆叠式的,所以隐藏对象不会占用任何space.

从 WatchOS 2.0 开始,您可以使用:

  • sizeToFitWidth()
  • sizeToFitHeight()
  • setRelativeWidth(CGFloat, withAdjustment: CGFloat)
  • setRelativeHeight(CGFloat, withAdjustment: CGFloat)

https://developer.apple.com/reference/watchkit/wkinterfaceobject