【问题标题】:Find height and width of a WKInterfaceImage查找 WKInterfaceImage 的高度和宽度
【发布时间】:2015-03-11 06:53:48
【问题描述】:

我想以编程方式呈现UIImage,然后在Apple Watch 上以WKInterfaceImage 显示它,我将其高度和宽度设置为“相对于容器”(这样它基本上会占用整个屏幕空间)。 如何获取WKInterfaceImage 的宽度和高度?据我所知,没有frame-、border-或layer-property 我可以从我的扩展程序代码中访问。那么获取这些信息的正确方法是什么?

奇怪的是,我发现有一个 setWidth 和 setHeight 方法,但我找不到相应的 getter 方法。

归根结底,我基本上是在寻找与此等效的 Watch Kit:

@IBOutlet weak var imageView: UIImageView!
//...
var width = imageView.frame.width
var height = imageView.frame.height

【问题讨论】:

标签: ios swift watchkit wkinterfaceimage


【解决方案1】:

这是 WatchKit 的一个非常常见的误解。

您不能以这种方式查询运行时数据。原因是 Apple 不希望您每次需要读取值时都 ping Watch。他们希望尽可能地优化电池寿命。相反,您需要“知道”WKInterfaceImage 的宽度和高度。您在 Storyboard 中定义了它,因此您确切地知道它已经是什么。 Xscope 可以非常有助于确定确切的大小。知道大小后,您需要将该大小存储在 WKInterfaceController 中,以便在运行时获得数据。

class ImageInterfaceController : WKInterfaceController {
    let imageSize38mm = CGSize(width: 100, height: 100)
    let imageSize42mm = CGSize(width: 120, height: 120)
}

希望这有助于阐明这样一个事实:您无法像在 iOS 应用中那样在运行时查询布局和大小信息。

【讨论】:

  • 很好的解释。
  • 44mm手表怎么样?
【解决方案2】:

遗憾的是,您无法以编程方式设置图像的宽度和高度。将图像模式设置为适合内容的大小,并且与容器视图相同。它会自行调整大小以适应内容。

引用类引用中唯一可用的属性

【讨论】:

  • 嗯...我不确定我是否明白了你的观点(或者你明白了我的观点):我不是要设置 ImageViews 的宽度和高度,而是要获取它们。
  • 啊,对不起!我的错。照片本身是视图中唯一的元素吗?
  • 是的,它是...考虑到您的回答,无论如何让我采用另一种方法:构造一个方形 UIImage,然后将其放入 WKInterfaceImage 中!
  • 使用相对于容器更加混淆了问题......有没有办法知道哪个尺寸的手表连接到iPhone应用程序?
  • 您可以依赖 WKInterfaceController 中的 contentFrame 属性。
猜你喜欢
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
  • 2016-08-09
  • 2016-06-12
相关资源
最近更新 更多