ContentView.swift
// // ContentView.swift // SwiftUIProject // // Created by Cairocoders // import SwiftUI struct ContentView: View { @State var data: userlist? var body: some View { NavigationView { VStack { HStack(spacing: 16) { Image("pic") .resizable() .scaledToFill() .frame(width: 50, height: 50) .clipped() .cornerRadius(50) .overlay(RoundedRectangle(cornerRadius: 44) .stroke(Color(.label), lineWidth: 1) ) .shadow(radius: 5) VStack(alignment: .leading, spacing: 4) { Text("cairocoders") .font(.system(size: 24, weight: .bold)) HStack { Circle() .foregroundColor(.green) .frame(width: 14, height: 14) Text("online") .font(.system(size: 12)) .foregroundColor(Color(.lightGray)) } } Spacer() Button { } label: { Image(systemName: "gear") .font(.system(size: 24, weight: .bold)) .foregroundColor(Color(.label)) } }//End HStack .padding() ScrollView { ForEach(user){i in Button(action: { data = .init(id: i.id, name: i.name, image: i.image, pic: i.pic) }) { VStack { HStack(spacing: 16) { Image(i.image) .resizable() .scaledToFill() .frame(width: 50, height: 50) .clipped() .cornerRadius(50) VStack(alignment: .leading) { Text(i.name) .font(.system(size: 16, weight: .bold)) Text("View Profile") .font(.system(size: 14)) .foregroundColor(Color(.lightGray)) } Spacer() Text("22m") .font(.system(size: 14, weight: .semibold)) } Divider() .padding(.vertical, 8) }.padding(.horizontal) } }//End ForEach .padding(.bottom, 50) .sheet(item: $data) { rs in Profile(viewdata: rs) } }// End scrollview } .navigationBarHidden(true) } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } struct userlist : Identifiable { var id : Int var name : String var image : String var pic : String } var user = [ userlist(id: 0, name: "Taylor", image: "photo1", pic: "1"), userlist(id: 1, name: "Mari", image: "photo2", pic: "2"), userlist(id: 2, name: "Sandra", image: "photo3", pic: "3") ]Profile.swift
// // Profile.swift // SwiftUIProject // // Created by Cairocoders // import SwiftUI struct Profile : View { @Environment(\.presentationMode) var presentationMode let viewdata : userlist var body : some View{ ZStack{ Image(viewdata.pic).resizable().edgesIgnoringSafeArea(.all) VStack{ HStack{ Button(action: { }) { Image(systemName: "slider.horizontal.3").foregroundColor(Color.black).font(.title) } Spacer() Button(action: { presentationMode.wrappedValue.dismiss() }) { Image(systemName: "xmark").foregroundColor(Color.black).font(.title) } } Spacer() ZStack(alignment: .top) { VStack{ HStack{ VStack(alignment: .leading, spacing: 10) { Text("\(viewdata.name),").font(.title) Text("19") } Spacer() HStack(spacing: 8){ Image(systemName: "mappin.and.ellipse") Text("2 Miles") }.padding(8) .background(Color.black.opacity(0.1)) .cornerRadius(10) }.padding(.top,35) Text("Hi! My name \(viewdata.name). I like sharing my thoughts and adore people who except me the way I am. Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit. Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit.").padding(.top) }.padding() .background(Blurview()) .clipShape(BottomShape()) .cornerRadius(25) ZStack{ Button(action: { }) { Image(systemName: "message.and.waveform") .frame(width: 20, height: 20) .padding(20) .background(Color.white) .clipShape(Circle()) .font(.title) .foregroundColor(Color.green) } Circle().stroke(Color.green, lineWidth: 5).frame(width: 70, height: 70) }.offset(y: -35) HStack{ Button(action: { }) { Image(systemName: "suit.heart") .frame(width: 25, height: 20) .padding() .background(Color.white) .clipShape(Circle()) .font(.title) .foregroundColor(Color.red) } Spacer() Button(action: { }) { Image(systemName: "hand.thumbsup") .frame(width: 25, height: 25) .padding() .background(Color.white) .clipShape(Circle()) .font(.title) .foregroundColor(Color.blue) } }.offset(y: -25) .padding(.horizontal,35) } }.padding() } } } struct BottomShape : Shape { func path(in rect: CGRect) -> Path { return Path{path in path.move(to: CGPoint(x: 0, y: 0)) path.addLine(to: CGPoint(x: 0, y: rect.height)) path.addLine(to: CGPoint(x: rect.width, y: rect.height)) path.addLine(to: CGPoint(x: rect.width, y: 0)) path.addArc(center: CGPoint(x: rect.width / 2, y: 0), radius: 42, startAngle: .zero, endAngle: .init(degrees: 180), clockwise: false) } } } struct Blurview : UIViewRepresentable { func makeUIView(context: UIViewRepresentableContext<Blurview>) -> UIVisualEffectView { let view = UIVisualEffectView(effect: UIBlurEffect(style: .systemUltraThinMaterialLight)) return view } func updateUIView(_ uiView: UIVisualEffectView, context: UIViewRepresentableContext<Blurview>) { } } struct Profile_Previews: PreviewProvider { static var previews: some View { Profile(viewdata: userlist(id: 1, name: "Taylor", image: "photo1", pic: "1")) } }