SwiftUI Custom Slider с максимальным значением - PullRequest
0 голосов
/ 04 марта 2020

Я использую этот отличный код, чтобы получить слайдер. здесь

но как я могу установить максимальное значение 30, а не 100?

этот пример от 0 до 100.

надеюсь, что каждый может справка.

struct CustomView: View {

@Binding var percentage: Float // or some value binded

var body: some View {
    GeometryReader { geometry in
        ZStack(alignment: .leading) {
            Rectangle()
                .foregroundColor(.gray)
            Rectangle()
                .foregroundColor(.accentColor)
                .frame(width: geometry.size.width * CGFloat(self.percentage / 100))
        }
        .cornerRadius(12)
        .gesture(DragGesture(minimumDistance: 0)
            .onChanged({ value in
                self.percentage = min(max(0, Float(value.location.x / geometry.size.width * 100)), 100)
            }))
    }
}

}

1 Ответ

1 голос
/ 04 марта 2020

Вам просто нужно заменить 100 на 30, чтобы получить оценку от 0 до 30


struct CustomView: View {

    @Binding var percentage: Float // or some value binded

    var body: some View {
        GeometryReader { geometry in
            ZStack(alignment: .leading) {
                Rectangle()
                    .foregroundColor(.gray)
                Rectangle()
                    .foregroundColor(.accentColor)
                    .frame(width: geometry.size.width * CGFloat(self.percentage / 30))
            }
            .cornerRadius(12)
            .gesture(DragGesture(minimumDistance: 0)
            .onChanged({ value in
                self.percentage = min(max(0, Float(value.location.x / geometry.size.width * 30)), 30)
                print(self.percentage)
            }))
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...