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) {
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
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)
}))
}
}
}
推荐阅读
- android - 如何以图片模式在我的活动图片中播放 youtube 视频
- firebase - 如何在 Firebase 中设置 .indexOn?
- angular - 如何在 Angular 7 中订阅 iframe 的 src 更改
- mysql - 如何获得至少有 1 个孩子的父母?
- c# - 如何在 xunit 测试项目中读取 appsettings.json?
- java - 服务器端点调用地址和重定向地址返回不同的 ip 地址
- python - 如何自定义一个用于减少单元素列表的函数?
- android - ScrollView 在抽屉布局中不起作用。我已经在导航视图中放置了滚动条。但它不起作用
- javascript - Google 脚本 - 在 google.gs 函数上计算的 html 上显示结果
- c# - 清除 ListBox 值(不是 listBox 项)