From 8b0f75b797bf9cfc721534e884814a480d769a11 Mon Sep 17 00:00:00 2001 From: eduardoquintero117 Date: Sat, 13 Jan 2024 10:22:55 -0600 Subject: [PATCH 1/2] feature Rating Star System --- SwiftUIBasics/Views/RatingView.swift | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/SwiftUIBasics/Views/RatingView.swift b/SwiftUIBasics/Views/RatingView.swift index 3ca74af..64085bc 100644 --- a/SwiftUIBasics/Views/RatingView.swift +++ b/SwiftUIBasics/Views/RatingView.swift @@ -8,8 +8,26 @@ import SwiftUI struct RatingView: View { + @State var selected = 0 var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + Text("Rating Star") + .padding() + + HStack{ + ForEach(0..<5){i in + Image(systemName: i <= selected ? "star.fill":"star") + .resizable() + .foregroundStyle(i <= selected ? .yellow:.black) + .frame(width: 40,height: 40).onTapGesture { + selected = i + + } + } + + + } + + } } From 3b48923ec839bfc39bba7b92600cf04bdeae6413 Mon Sep 17 00:00:00 2001 From: Eduardo Quintero Juan <31216906+eduardoquintero117@users.noreply.github.com> Date: Sat, 27 Jan 2024 11:54:31 -0600 Subject: [PATCH 2/2] Update RatingView.swift correction of spaces and indentation --- SwiftUIBasics/Views/RatingView.swift | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/SwiftUIBasics/Views/RatingView.swift b/SwiftUIBasics/Views/RatingView.swift index 64085bc..d879388 100644 --- a/SwiftUIBasics/Views/RatingView.swift +++ b/SwiftUIBasics/Views/RatingView.swift @@ -8,7 +8,7 @@ import SwiftUI struct RatingView: View { - @State var selected = 0 + @State var selected = -1 var body: some View { Text("Rating Star") .padding() @@ -18,16 +18,12 @@ struct RatingView: View { Image(systemName: i <= selected ? "star.fill":"star") .resizable() .foregroundStyle(i <= selected ? .yellow:.black) - .frame(width: 40,height: 40).onTapGesture { - selected = i - + .frame(width: 40,height: 40) + .onTapGesture { + i != selected ? (selected=i) : (selected = -1) } - } - - - } - - + } + } } }