@IBDesignable UI组件如何被实现到SwiftUI视图中?



我想在我的项目中使用'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()
}
}

相关内容

  • 没有找到相关文章

最新更新