我想以编程方式呈现UIImage
,然后在WKInterfaceImage
的Apple Watch上显示它,我设置的高度和宽度为#34;相对于容器" (这样它基本上占用了整个屏幕空间)。
如何获得WKInterfaceImage
的宽度和高度?据我所知,没有frame
- ,border
- 或layer
- 我可以从我的扩展程序代码访问的属性。那么获取这些信息的正确方法是什么?
奇怪的是我发现有一个setWidth和setHeight方法,但我无法根据getter方法找到它。
在一天结束时,我基本上在寻找与此相当的Watch Kit:
@IBOutlet weak var imageView: UIImageView!
//...
var width = imageView.frame.width
var height = imageView.frame.height
答案 0 :(得分:5)
这是与WatchKit非常常见的误解。
您无法以这种方式查询运行时数据。原因是Apple每次需要读取值时都不希望你ping Watch。他们希望尽可能地优化电池寿命。相反,您需要“知道”WKInterfaceImage
的宽度和高度。您在故事板中定义了它,因此您确切地知道它已经是什么。 Xscope确实有助于确定大小的大小。一旦知道了大小,就需要在WKInterfaceController
中存储该大小,以便在运行时获得数据。
class ImageInterfaceController : WKInterfaceController {
let imageSize38mm = CGSize(width: 100, height: 100)
let imageSize42mm = CGSize(width: 120, height: 120)
}
希望这有助于说明您无法在运行时查询布局和调整大小信息,就像在iOS应用程序中一样。
答案 1 :(得分:1)
可悲的是,您无法以编程方式设置图像的宽度和高度。将图像模式设置为适合内容的大小,也与容器视图相同。它将调整自身大小以适应内容。
引用类引用中唯一可用的属性