我想以编程方式呈现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应用中一样在运行时查询布局和大小信息。

09-26 08:36