diff --git a/SwiftUIBasics/Views/RatingView.swift b/SwiftUIBasics/Views/RatingView.swift index 3ca74af..96a65fb 100644 --- a/SwiftUIBasics/Views/RatingView.swift +++ b/SwiftUIBasics/Views/RatingView.swift @@ -8,11 +8,42 @@ import SwiftUI struct RatingView: View { + + @State var rating: Int + + var offImage = Image(systemName: "star") + var onImage = Image(systemName: "star.fill") + var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + VStack { + Text("Rate:") + .font(.system(size: 111)) + .bold() + HStack{ + ForEach(1..<6, id:\.self){ number in + Image(systemName: + image(for: number)) + .font(.system(size: 45)) + .foregroundColor(number > rating ? + Color.gray : Color.yellow) + .onTapGesture { + rating = number + } + } + } + } } + } #Preview { - RatingView() + RatingView(rating: 0) +} + +func image(for number: Int) -> String { + if number <= 5 { + return "star" + } else { + return "star.fill" + } }