54: Bookworm, part 2

그루두·2024년 6월 28일
0

100 days of SwiftUI

목록 보기
62/108

100 days of swiftui: 54

별점 버튼 만들기

동영상에서는 별 이미지를 return하는 방식을 사용하지만, 더 간단하게 구현해볼 수 있어서 다르게 구현해봤다.

똑같이 @Binding한 rating을 받아와 그 수만큼 별 모양 버튼을 노란색으로 표현하고 나머지는 회색으로 표현한다. 그리고 각 버튼을 클릭하면 rating 값을 수정한다.

struct RatingView: View {
    @Binding var rating: Int
    let maxRating = 5
    var body: some View {
        HStack {
            ForEach(1..<maxRating + 1) { i in
                Button(action: {
                    rating = i
                }, label: {
                    Image(systemName: "star.fill")
                        .foregroundColor(i > rating ? .black.opacity(0.2) : .yellow)
                })
                .buttonStyle(.plain)
            }
        }
    }
}

깃헙 링크

추가

나머지는 sheet로 AddBookView로 이동하고 modelContext에 새로운 book을 저장하고, books에서 정보를 가져와 list로 나타내어 완성했다.
깃헙 링크

결과물

profile
계속 해보자

0개의 댓글

관련 채용 정보