如何使任何View都符合View,以便与ImageRenderer一起使用?

问题描述 投票:0回答:1

我有这个协议

protocol Slide: View {
 ///
}

class MyClass {

   let slides: [any Slide]

}

然后我想使用

ImageRenderer
来制作给定幻灯片的屏幕截图,因为它们是
View
,所以这应该是可能的。

但是当从

ImageRenderer
发送
Slide
一个
slides
时,

let aSlide = slides[0]
let screenshot = ImageRenderer(content: aSlide)

我收到错误了

Type any View cannot conform to View

有什么建议可以解决这个问题吗?

swiftui protocols
1个回答
0
投票

尝试使用泛型:

class MyClass<Content> where Content: Slide {

    let slides: [Content]

}

我不确定你的类如何结合在一起以及 ImageRenderer 通常如何使用,但我发现这至少编译没有错误:

struct MyClass<Content>: View where Content: Slide {

    let slides: [Content]

    var body: some View {
        let aSlide = slides[0]
        let screenshot = ImageRenderer(content: aSlide)
        return screenshot.content
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.