ContentView.swift
// // ContentView.swift // SwiftUIProject // // Created by Cairocoders // import SwiftUI struct ContentView: View { @State var user: Userlist? var body: some View { VStack { ZStack { ForEach(users) { rs in CardView(viewdata: rs) } } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }CardView.swift
// // CardView.swift // SwiftUIProject // // Created by Cairocoders // import SwiftUI struct CardView: View { @State private var offset = CGSize.zero @State private var color: Color = .black @State var viewdata: Userlist var body: some View { ZStack { Rectangle() .frame(width: 325, height: 425) .border(.white, width: 6.0) .cornerRadius(4) .foregroundColor(color.opacity(0.9)) .shadow(radius: 4) HStack { Image(viewdata.photo).resizable() .frame(width: 320, height: 420) } } .offset(x: offset.width * 1, y: offset.height * 0.4) .rotationEffect(.degrees(Double(offset.width / 40))) .gesture( DragGesture() .onChanged { gesture in offset = gesture.translation withAnimation { changeColor(width: offset.width) } } .onEnded { _ in withAnimation { swipeCard(width: offset.width) changeColor(width: offset.width) } } ) } func swipeCard(width: CGFloat) { switch width { case -500...(-150): print("\(viewdata.username) removed") offset = CGSize(width: -500, height: 0) case 150...500: print("\(viewdata.username) added") offset = CGSize(width: 500, height: 0) default: offset = .zero } } func changeColor(width: CGFloat) { switch width { case -500...(-130): color = .red case 130...500: color = .green default: color = .black } } } struct CardView_Previews: PreviewProvider { static var previews: some View { CardView(viewdata: Userlist(id: 1, username: "Cairocoders", photo: "1")) } }Model.swift
// // Model.swift // SwiftUIProject // // Created by Cairocoders // import SwiftUI struct Userlist: Identifiable { let id: Int let username: String let photo : String } var users = [ Userlist(id: 0, username: "Olivia", photo: "1"), Userlist(id: 1, username: "Emma", photo: "2"), Userlist(id: 2, username: "Ava", photo: "3"), Userlist(id: 3, username: "Charlotte", photo: "4"), Userlist(id: 4, username: "Sophia", photo: "5"), Userlist(id: 5, username: "Amelia", photo: "6") ]