2016-01-23 59 views
1

是否有人找到一种方法来检索WKInterfaceObject的属性,例如内容框架或字体属性?似乎有设置这些属性的功能,但不访问现有的功能。获取WKInterfaceObject类的属性

我试图用WKInterfaceLabel.setAttributedText()设置“XXXyy”这样的文本,其中“yy”部分设置为小于原始字体大小百分比的字体。但我找不到任何方法来访问原始字体大小。我也无法通过访问对象的尺寸来找到一种近似方式。现在我正在通过对字体大小进行硬编码来解决问题,但这变得越来越困难,因为我需要在故事板中指定设备特定的字体属性。

回答

1

正如您从the documentation所见,WKInterfaceObject没有getter方法。

您的扩展中的界面对象与Apple Watch上的相应视图之间的通信是一种方式,信息从WatchKit扩展到Apple Watch。换句话说,您可以在接口对象上设置值,但不能获取其属性的当前值。从Apple Watch中检索数据,进行更改以及将这些更改写回到设备中会带来性能和延迟影响。因此,建议您保留有关WatchKit扩展中界面配置的信息。

您无法从WatchKit对象本身获取Storyboard设置的设备特定属性。

一种可能的解决方法是对XXX和yy字符串使用两个相邻的标签。然后,您可以在Storyboard中指定一个相对较小的(系统或文本样式)字体以及原始字体。

+0

感谢您的建议,但对于我正在尝试做的事情来说太笨拙了。目前,我使用'WKInterfaceDevice.currentDevice().screenBounds'来推断手表的尺寸,并确定哪些字体尺寸最合适。这也非常糟糕,但是在这种情况下解决方法就更少了。 –