ContentView.swift
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | // // 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() } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | // // 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" )) } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // // 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" ) ] |