我想以编程方式呈现UIImage
,然后以WKInterfaceImage
的形式显示在Apple Watch上,该高度和宽度我设置为“相对于容器”(这样,它基本上占据了整个屏幕空间)。
如何获取WKInterfaceImage
的宽度和高度?据我所知,没有frame
-,border
-oder layer
-property我可以从扩展程序的代码访问。那么获取此信息的正确方法是什么?
奇怪的是,我发现有一个setWidth和setHeight方法,但是找不到符合getter方法的方法。
归根结底,我基本上是在寻找与此等效的Watch Kit:
@IBOutlet weak var imageView: UIImageView!
//...
var width = imageView.frame.width
var height = imageView.frame.height
最佳答案
对于WatchKit,这是一个非常普遍的误解。
您不能以这种方式查询运行时数据。原因是Apple不想让您每次需要读取值时都要对Watch进行ping操作。他们希望尽可能延长电池生命周期。相反,您需要“知道” WKInterfaceImage
的宽度和高度。您在 Storyboard 中定义了它,因此您确切地知道它已经是什么。 Xscope确实可以帮助您准确确定大小。知道大小后,您需要将该大小存储在WKInterfaceController
中,以便在运行时获取数据。
class ImageInterfaceController : WKInterfaceController {
let imageSize38mm = CGSize(width: 100, height: 100)
let imageSize42mm = CGSize(width: 120, height: 120)
}
希望这有助于您了解以下事实:您无法像在iOS应用中一样在运行时查询布局和大小信息。