[SwiftUI] Slider

RudinP·5일 전
0

Study

목록 보기
314/325

struct ColorSlider: View {
    let title: String
    let color: Color
    
    @Binding var value: Double
    @Binding var dragging: Bool

    var body: some View {
        Slider(value: $value, in: 0...255, step: 1) {
            EmptyView() // label 파라미터
        } minimumValueLabel: {
            Text(title)
                .foregroundStyle(color)
                .frame(minWidth: 50)
        } maximumValueLabel: {
            Text("\(Int(value))")
                .foregroundStyle(color)
                .frame(minWidth: 50)
        } onEditingChanged: { editing in
            dragging = editing
        }
        .padding()
        .tint(color)
    }
}
struct Slider_Tutorials: View {
    @State private var r = 0.0
    @State private var g = 0.0
    @State private var b = 0.0
    
    @State private var dragging = false
    
    var color: Color {
        Color(red: r / 255, green: g / 255, blue: b / 255)
    }
    
    var body: some View {
        VStack {
            Button("Reset") {
                r = 0.0
                g = 0.0
                b = 0.0
            }
            .buttonStyle(.borderedProminent)
            .disabled(dragging)
            
            
            Image(systemName: "umbrella.fill")
                .resizable()
                .foregroundColor(color)
                .frame(width: 250, height: 250)
            
            ColorSlider(title: "R", color: .red, value: $r, dragging: $dragging)
            
            ColorSlider(title: "G", color: .green, value: $g, dragging: $dragging)
            
            ColorSlider(title: "B", color: .blue, value: $b, dragging: $dragging)
            
        }
    }
}
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글