我有这个协议
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
有什么建议可以解决这个问题吗?
尝试使用泛型:
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
}
}