Я пытаюсь передать два представления как потомков вида, используя @ViewBuilder
.
Мне нужно знать, какой из них первый, а какой второй, поскольку я хочу показать одно или другое в зависимости от какого-либо состояния.
Я смог выполнить эту работу не обобщенным c способом, то есть я явно указал типы дочерних представлений.
struct FlippableView<Content: View>: View {
@State private var flipped = false
@State private var degrees = 0.0
var frontCard: FeedItem
var backCard: FeedItem
@inlinable public init(@ViewBuilder content: () -> Content) {
var t = content() as! TupleView<(FeedItem, FeedItem)>
self.frontCard = t.value.0
self.backCard = t.value.1
}
var body: some View {
return Group() {
if self.degrees < 90 {
self.frontCard
} else {
self.backCard
.rotation3DEffect(Angle(degrees: 180), axis: (x: CGFloat(0), y: CGFloat(10), z: CGFloat(0)))
}
}
}
Как я могу сделать это более обобщенным c, избавившись от моих типов FeedItem. Мне бы хотелось, чтобы два вида были двумя разными типами.