首页 > 解决方案 > 将 ViewModifier 注入 SwiftUI 视图

问题描述

当前情况
我在一个 iOS SDK 上工作,其中包含几个UIViewControllers可以通过委托函数自定义的,将 aString作为标识符传递并获取自定义的CALayer. 这样,宿主应用程序就可以自定义 SDK 的外观。

这是一个例子:

extension ViewController: NINChatSessionDelegate {
    func ninchat(_ session: NINChatSession, overrideLayer assetKey: CALayerConstant) -> CALayer? {
        switch assetKey {
        case .ninchatPrimaryButton:
            let layer = CALayer()
            layer.backgroundColor = UIColor.gray.cgColor
            layer.masksToBounds = true
            layer.cornerRadius = 20.0
            return layer
        default:
            return nil
    }
} 

问题
如今,我正在尝试将代码迁移到 SwiftUI 和 Combine。但是我找不到一种方法来提供主机应用程序来注入它们自己的属性。据我了解,ViewModifier结构体用于将自定义属性应用于View(s)SwiftUI 中的一个或多个。但是,我还没有找到将它们注入 SDK 的方法,因为ViewModifier协议具有 Self 或关联的类型要求

我感谢任何帮助和指导。

标签: swiftviewswiftuiviewmodifier

解决方案


推荐阅读