如何从 watch OS 2 中的 Watch Extension 创建 UIView 实例?

How to create an instance of UIView from Watch Extension in watch OS 2?

在 watch OS 1 中,我能够在 WatchExtension 中创建自定义视图的实例。我不是在谈论显示它,我的意思是只是创建一个视图实例,然后创建一个 UIImage 及其内容。

现在,在 watch OS 2 中,即使导入了 UIKit 框架,我也无法从 WatchExtension 访问 UIView

有什么方法可以从 WatchExtension 创建 UIView 的实例吗?

没有。在 watch OS 2 中,您不能动态分配任何 UI 元素。如果你想初始化任何 UI 东西,你必须使用故事板。

Creating an Interface Object

You create interface objects indirectly by adding the object to your storyboard scene and referring to it from your interface controller. After adding an element to your storyboard, create an outlet for it in your interface controller. During the initialization of your interface controller, WatchKit creates the interface objects for all of your connected outlets automatically. You never create the interface objects yourself.

不幸的是,这似乎无法在 watchOS2 上实现。 watchOS1 使用 iOS 平台 SDK,而 watchOS2 是一个单独的平台。

迁移文档:

In watchOS 2, you can share code, but not frameworks, between your iOS app and Watch app. Because the apps run on separate platforms with different architectures...

也在 WatchKit 深度 1 wwdc 视频中他们提到了这个:

The WatchKit extension for watchOS 1 is something you have created already, there is a target in your project, but it uses the iOS platform in SDK.

Here 是您可以在 watchOS2 上使用的可用系统技术。

我和你一样在 watchOS1 上做了同样的事情,使用了一个 UIView 并将其快照到一个 UIView 中。除了在 phone 上执行此操作并将其发送回手表(您失去了 watchOS2 的好处,即扩展程序在手表上运行并且不需要与 phone 通信),或者从服务器获取它作为图像,我看不到任何其他方法。

编辑:有可用的 Core Graphics,因此我们可以进行基本绘图。看这里:http://develop.watch/develop-for-watchos-2-iii-drawing/