具有最大值的SwiftUI自定义滑块
我使用这个很棒的代码来获得一个滑块 但是如何将最大值设置为30而不是100 这个例子是从0到100 希望大家能帮忙具有最大值的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
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)`