查找 WKInterfaceImage 的高度和宽度
Find height and width of a WKInterfaceImage
我想以编程方式渲染一个 UIImage
,然后在 Apple Watch 上以 WKInterfaceImage
的形式显示它,我将其高度和宽度设置为 "Relative to Container"(这样它基本上占据了整个屏幕 space)。
如何获得 WKInterfaceImage
的宽度和高度?据我所知,没有 frame
-, border
- 或者 layer
-属性 我可以从我的扩展代码访问。那么获取这些信息的正确方法是什么?
很奇怪,我发现有一个 setWidth 和 setHeight 方法,但是我找不到根据 getter 方法。
归根结底,我基本上是在寻找与此等效的手表套件:
@IBOutlet weak var imageView: UIImageView!
//...
var width = imageView.frame.width
var height = imageView.frame.height
遗憾的是,您无法以编程方式设置图像的宽度和高度。将图像模式设置为适合内容的大小,容器视图也一样。它会自行调整大小以适应内容。
引用 class 参考中的唯一可用属性
这是对 WatchKit 的一个非常普遍的误解。
您不能通过这种方式查询运行时数据。原因是 Apple 不希望您每次需要读取值时都对 Watch 执行 ping 操作。他们希望尽可能优化电池寿命。相反,你需要 "know" 什么宽度和高度 WKInterfaceImage
。您在 Storyboard 中定义了它,因此您确切地知道它已经是什么。 Xscope 对准确计算大小非常有帮助。知道大小后,您需要将该大小存储在 WKInterfaceController
中,以便在运行时获得数据。
class ImageInterfaceController : WKInterfaceController {
let imageSize38mm = CGSize(width: 100, height: 100)
let imageSize42mm = CGSize(width: 120, height: 120)
}
希望这有助于阐明您无法在运行时查询布局和大小信息这一事实,就像在 iOS 应用程序中一样。
我想以编程方式渲染一个 UIImage
,然后在 Apple Watch 上以 WKInterfaceImage
的形式显示它,我将其高度和宽度设置为 "Relative to Container"(这样它基本上占据了整个屏幕 space)。
如何获得 WKInterfaceImage
的宽度和高度?据我所知,没有 frame
-, border
- 或者 layer
-属性 我可以从我的扩展代码访问。那么获取这些信息的正确方法是什么?
很奇怪,我发现有一个 setWidth 和 setHeight 方法,但是我找不到根据 getter 方法。
归根结底,我基本上是在寻找与此等效的手表套件:
@IBOutlet weak var imageView: UIImageView!
//...
var width = imageView.frame.width
var height = imageView.frame.height
遗憾的是,您无法以编程方式设置图像的宽度和高度。将图像模式设置为适合内容的大小,容器视图也一样。它会自行调整大小以适应内容。
引用 class 参考中的唯一可用属性
这是对 WatchKit 的一个非常普遍的误解。
您不能通过这种方式查询运行时数据。原因是 Apple 不希望您每次需要读取值时都对 Watch 执行 ping 操作。他们希望尽可能优化电池寿命。相反,你需要 "know" 什么宽度和高度 WKInterfaceImage
。您在 Storyboard 中定义了它,因此您确切地知道它已经是什么。 Xscope 对准确计算大小非常有帮助。知道大小后,您需要将该大小存储在 WKInterfaceController
中,以便在运行时获得数据。
class ImageInterfaceController : WKInterfaceController {
let imageSize38mm = CGSize(width: 100, height: 100)
let imageSize42mm = CGSize(width: 120, height: 120)
}
希望这有助于阐明您无法在运行时查询布局和大小信息这一事实,就像在 iOS 应用程序中一样。