当前情况
我在一个 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 或关联的类型要求
我感谢任何帮助和指导。