2016-01-23 86 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'來推斷手錶的尺寸,並確定哪些字體尺寸最合適。這也非常糟糕,但是在這種情況下解決方法就更少了。 –