具有最大值的SwiftUI自定义滑块

具有最大值的SwiftUI自定义滑块,swift,swiftui,Swift,Swiftui,我使用这个很棒的代码来获得一个滑块 但是如何将最大值设置为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) { Rect

我使用这个很棒的代码来获得一个滑块

但是如何将最大值设置为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)
            }))
    }
}

}

您只需将100替换为30即可从0绑定到30


结构自定义视图:视图{
@绑定变量百分比:Float//或绑定的某个值
var body:一些观点{
GeometryReader{中的几何体
ZStack(对齐:。引导){
矩形()
.foregroundColor(.灰色)
矩形()
.foregroundColor(.accentColor)
.frame(宽度:geometry.size.width*CGFloat(self.percentage/30))
}
.转弯半径(12)
.手势(牵引力(最小距离:0)
.onChanged({中的值
self.percentage=min(最大值(0,浮点值(value.location.x/geometry.size.width*30)),30)
打印(自身百分比)
}))
}
}
}

矩形需要变为100%,而不仅仅是30%。您可以为视图矩形设置
frame
,这样,最大值为30不会影响矩形的大小CustomView(百分比:$percentage).accentColor(.red).frame(宽度:300,高度:44)`