Внедрить ViewModifier в представление SwiftUI
Текущая ситуация
Я работаю над iOS SDK, содержащим несколько
UIViewControllers
которые можно настроить с помощью функции делегата, передающей
String
в качестве идентификатора и получить индивидуальный
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 и объединить. Но я не могу найти способ предложить хост-приложениям внедрять свои собственные атрибуты. Насколько я понял, структура используется для применения настраиваемых атрибутов к одному или нескольким
View(s)
в SwiftUI. Однако я пока не мог найти способ внедрить их в SDK, потому что
ViewModifier
протокол имеет собственные требования или требования к ассоциированному типу
Я ценю любую помощь и руководство.