ContentView.swift
// // ContentView.swift // swiftuidev15ios // // Created by Cairocoders // import SwiftUI struct ContentView: View { @State var show = false var body: some View { ZStack { if self.show { GeometryReader { geometry in Loader() .position(x: geometry.size.width / 2, y: geometry.size.height / 2) }.background(Color.black.opacity(0.45).edgesIgnoringSafeArea(.all)) .onTapGesture { self.show.toggle() } }else { Button(action: { self.show.toggle() }) { Text("Show Custom Indicator") } } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } struct Loader : View { @State var animate = false var body: some View { VStack { Circle() .trim(from: 0, to: 0.8) .stroke(AngularGradient(gradient: .init(colors: [.red,.orange]), center: .center), style: StrokeStyle(lineWidth: 8, lineCap: .round)) .frame(width: 45, height: 45) .rotationEffect(.init(degrees: self.animate ? 360 : 0)) .animation(Animation.linear(duration: 0.7).repeatForever(autoreverses: false)) .padding(.top, 10) Text("Please Wait...").padding() } .background(Color.white) .cornerRadius(15) .onAppear { self.animate.toggle() } } }