首页 > 解决方案 > 如何为 SwiftUI 包装自定义 WKInterfaceImage

问题描述

SwiftUI 在提供方面做得很好WKInterfaceObjectRepresentable但是,有什么方法可以创建自定义视图WKInterfaceImage吗?

这是我尝试过的,

import WatchKit
import SwiftUI
import SpriteKit

struct WatchImage: WKInterfaceObjectRepresentable {
    typealias WKInterfaceObjectType = WKInterfaceImage

    func makeWKInterfaceObject(context: WKInterfaceObjectRepresentableContext<WatchImage>) -> WKInterfaceImage {
        return WKInterfaceImage()
    }

    func updateWKInterfaceObject(_ wkInterfaceObject: WKInterfaceImage, context: Context) {
        wkInterfaceObject.setImage(UIImage(named: "start"))
   }
}

但是代码没有编译并在线给出错误return WKInterfaceImage()并说init() 不可用

这可能是因为我们无法以WKInterfaceImage编程方式创建对象。我们需要将它与情节提要一起使用。

那么有什么解决方法吗?

标签: iosswiftswiftuiwatchkit

解决方案


苹果说,

不要自己继承或创建此类的实例。相反,在您的界面控制器类中定义插座并将它们连接到您的故事板文件中的相应对象。

https://developer.apple.com/documentation/watchkit/wkinterfaceimage


推荐阅读