struct DevTechieTimerResetExample: View { let colors = [Color.orange, .pink, .red, .green, .indigo, .cyan, .mint] @State private var fillColor = Color.orange var body: some View { VStack { RoundedRectangle(cornerRadius: 20) .fill(fillColor) .frame(width: 300, height: 200) .overlay{ Text("DevTechie") .font(.largeTitle) .foregroundColor(.white) } } } }
let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
.onReceive(timer) { _ in withAnimation { fillColor = colors.randomElement()! } }
Button { timer.upstream.connect().cancel() } label: { Label("Stop", systemImage: "nosign") }
struct DevTechieTimerResetExample: View { let colors = [Color.orange, .pink, .red, .green, .indigo, .cyan, .mint] @State private var fillColor = Color.orange let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() var body: some View { VStack { RoundedRectangle(cornerRadius: 20) .fill(fillColor) .frame(width: 300, height: 200) .overlay{ Text("DevTechie") .font(.largeTitle) .foregroundColor(.white) } HStack { Button { timer.upstream.connect().cancel() } label: { Label("Stop", systemImage: "nosign") } .buttonStyle(.bordered) }} .onReceive(timer) { _ in withAnimation { fillColor = colors.randomElement()! } } } }
@State private var timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
Button { timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() } label: { Label("Resume", systemImage: "play") } .buttonStyle(.borderedProminent)
struct DevTechieTimerResetExample: View { let colors = [Color.orange, .pink, .red, .green, .indigo, .cyan, .mint] @State private var fillColor = Color.orange @State private var timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() var body: some View { VStack { RoundedRectangle(cornerRadius: 20) .fill(fillColor) .frame(width: 300, height: 200) .overlay{ Text("DevTechie") .font(.largeTitle) .foregroundColor(.white) } HStack { Button { timer.upstream.connect().cancel() } label: { Label("Stop", systemImage: "nosign") } .buttonStyle(.bordered) Button { timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() } label: { Label("Resume", systemImage: "play") } .buttonStyle(.borderedProminent) }} .onReceive(timer) { _ in withAnimation { fillColor = colors.randomElement()! } } } }
With that we have reached the end of this article. Thank you once again for reading. Don’t forget to follow 😍. Also subscribe our newsletter at https://www.devtechie.com