Я очень стараюсь воссоздать что-то вроде представления Кошелька, но не могу понять это. Я жестко запрограммировал смещения в своем ZStack, но, конечно, я тоже хочу этого избежать. Похоже, что смещения вообще не позволяют регистрировать отводы. Вот мой код, касание карты должно изменить цвет ее заголовка с белого на желтый.
В конце концов, конечно, я хочу добавить анимацию в стопку карт и иметь возможность «вытянуть» одну из это место, чтобы сделать его основным видом. Но я должен сначала выяснить, как ловить метчики ...
Я использовал это видео в качестве базы, но на самом деле это не go, насколько мне хотелось бы:
https://nsscreencast.com/episodes/399-swiftui-transforms-and-animations
import SwiftUI
struct BetterCards: View {
var body: some View {
ScrollView (.vertical) {
ZStack {
CardView(title: "adidas", color: .blue, offset: 0.0)
CardView(title: "Le Crueset", color: .pink, offset: 90.0)
CardView(title: " Card", color: .black, offset: 180.0)
CardView(title: "Sandusk", color: .orange, offset: 270.0)
}
}
}
}
struct CardView: View {
@State var isYellow: Bool = false
let title: String
let color: Color
let offset: CGFloat
var body: some View {
Button(action: {
self.isYellow.toggle()
}) {
ZStack {
Rectangle()
.fill(color)
.cornerRadius(10)
.frame(width: 320, height: 210)
VStack {
Text(title)
.font(.largeTitle)
.bold()
.foregroundColor(isYellow ? .yellow : .white)
.padding()
Spacer()
}
}.shadow(radius: 2.0)
.offset(x: 0, y: offset)
}.onTapGesture {
print("Tapped: \(self.title)")
}
}
}
struct BetterCards_Previews: PreviewProvider {
static var previews: some View {
BetterCards()
}
}