swift - 将 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 或关联的类型要求
我感谢任何帮助和指导。
解决方案
推荐阅读
- permissions - 授权权限和 UI 元素可见性——如何干净利落地实现?
- matlab - MATLAB中两个相关分布的卷积
- javascript - 为什么这个 React 代码不会改变状态,而 vanilla 代码会?
- openssl - 无法从 .pem 获取 .key
- botframework - Bot Framework v4 - 打开 2 个选项卡时出现 IndexOutOfRangeException
- javascript - 如何在画布上找到两个向量之间的角度?
- express - 使用 JWT 对单独的 API 微服务进行身份验证
- javascript - 使用 webpack 重新导出组件时不包含 Antdesign 样式
- javascript - Vue js 搜索数组
- sql - 如何比较两个不同表的列和匹配的列从表一中获取所有行?