gpt4 book ai didi

swift - Xcode 预览不适用于通用 View

转载 作者:行者123 更新时间:2023-12-05 07:06:27 25 4
gpt4 key购买 nike

我想在 SwiftUI View 中使用通用 subview 。

struct UserChoiceView<DecisionView: View>: View {
let subview: DecisionView
var body: some View {
subview
.padding()
.offset(x: 10)
}
}

struct LikeDislikeView_Previews: PreviewProvider {
static var previews: some View {
UserChoiceView(subview: RoundedRectangle(cornerRadius: 10)
.fill(Color.red.opacity(0.9)))
}
}

上面的代码工作正常,但 Xcode 无法生成预览。我收到此错误:

reference to generic type 'UserChoiceView' requires arguments in <...>

我想我可以通过使用 AnyView 类型删除来解决这个问题,但也许还有其他解决方法。

最佳答案

您需要在预览中明确定义 View 。

struct UserChoiceView<DecisionView: View>: View {
let subview: DecisionView

var body: some View {
/// ...
}
}

struct LikeDislikeView_Previews: PreviewProvider {
static var decisionView: View {
// return SomeDecisionView()
}

static var previews: some View {
UserChoiceView<Self.decisionView>(subview: Self.decisionView)
}
}

关于swift - Xcode 预览不适用于通用 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62504191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com