我想在我的项目中使用'Cards'组件。
这个项目是一个在Xcode 13上创建的iOS应用程序,使用SwiftUI接口,而不是storyboard。
已使用cocoapods安装卡片。
文档无法提供帮助,因为它假设项目使用故事板接口而不是SwiftUI。
我试了如下:
import SwiftUI
import Cards
struct ContentView: View {
let card: CardHighlight = {
let card = CardHighlight(frame: .zero)
return card
}()
var body: some View {
card
}
}
但是我在'card'行上得到以下2个错误:
属性'body'的返回类型要求'CardHighlight'符合"视图">
静态方法'buildBlock'要求'CardHighlight'符合"视图">
此CardHighlight
已使用@IBDesignable
创建。
如何添加到View
组件中?
@Asperi注释:
所有的卡都是UIView,所以你需要使用uiviewrepresable包装器将它们插入SwiftUI视图。
确实起作用了,谢谢你。
下面是我创建包装器的过程:// CardView.swift
import SwiftUI
import Cards
struct CardView: UIViewRepresentable {
func makeUIView(context: Context) -> CardHighlight {
CardHighlight()
}
func updateUIView(_ uiView: CardHighlight, context: Context) {
}
}
然后简单地在任何其他视图上使用这个新视图:
// ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
CardView()
}
}