【发布时间】:2022-08-06 16:35:12
【问题描述】:
标签: swiftui
标签: swiftui
SwiftUI Slider 不提供自定义“拇指”的 API。
UISlider 有一个 setThumbImage(_:for:),可让您自定义拇指的外观。您可以为UISlider 编写自己的UIViewRepresentable 包装器。这就是我要做的。
您也可以尝试使用the SwiftUI-Introspect package 访问底层UISlider 进行自定义,但我还没有尝试过,所以我不知道它的效果如何。它也可能会在 SwiftUI 的未来版本中中断。
【讨论】:
您还可以添加 .controlSize(_:) 修饰符。 选项包括:.mini、.small 和 .regular
【讨论】:
由于某种原因 .controlSize(_:) 修饰符对我不起作用。但我找到了一个不错的解决方案,无需使用UIViewRepresentable 和第三方库。只需在 .onAppear() 修饰符中添加您需要的 UIKit 自定义即可。
Slider(value: $currentValueProgress, in: 0...100, step: 1)
.accentColor(.white)
.onAppear {
let progressCircleConfig = UIImage.SymbolConfiguration(scale: .small)
UISlider.appearance()
.setThumbImage(UIImage(systemName: "circle.fill",
withConfiguration: progressCircleConfig), for: .normal)
}
【讨论】: