SwiftUI TVOS - как создать группу карточек или кнопок, которые принимают массив и на которые можно нажимать отдельно на некотором типе шаблона сетки?
Изображение карты. Здесь я попробовал использовать .onLongPressGesture, но безрезультатно:
import SwiftUI
struct ContentView: View {
@State private var show = true
@Binding var symbol:String
@Binding var background:Color
var body: some View {
HStack {
ForEach(0..<4) {
index in
CardView(isFaceUp: false)
}
}
.padding()
.foregroundColor(Color.orange)
.font(Font.largeTitle)
HStack {
ForEach(0..<4) {
index in
CardButton(show: $show, symbol: $symbol, background: $background)
}
}
}
}
struct CardView: View {
var isFaceUp: Bool
var body: some View {
ZStack {
if isFaceUp {
RoundedRectangle (cornerRadius: 13).fill(Color.white)
RoundedRectangle (cornerRadius: 13).stroke(lineWidth: 3)
Text ("*")
} else {
RoundedRectangle (cornerRadius: 13).fill()
}
}.onLongPressGesture(minimumDuration: 0.01, pressing: { _ in }) {
print("pressed")
}
}
}
Я также пробовал много типов кнопок, но без особого успеха. В приведенном ниже примере кнопки создаются, но все они переворачиваются, если выбрана одна из них.
struct CardButton: View {
@Binding var show: Bool
@Binding var symbol:String
@Binding var background:Color
var body: some View {
Button(action: {
self.show.toggle()
}) {
ZStack {
if show {
Image("Back").resizable().aspectRatio(1, contentMode: .fit).opacity(1.0)
.cornerRadius(22)
} else {
Image("Front")
.resizable().aspectRatio(1, contentMode: .fit).background(background.opacity(1.0))
.cornerRadius(22)
}
}
}
}
}
Я пытаюсь сделать это в SwiftUI без использования раскадровки. Мне нужна помощь - я работал над этим с SUI1, когда возникла ошибка «это еще невозможно сделать в TVOS», но кажется, что они обновили код в SUI3, и он должен как-то работать ???