在 SwiftUI 中更改滑块拇指

aFe*_*lla 3 slider uislider ios swift swiftui

是否可以像使用 UIKit 中的 UISlider 一样更改 SwiftUI 中滑块的拇指?使用 UISlider,您所要做的就是: self.setThumbImage(UIImage(named: "Play_black"), for: .normal)

Geo*_*e_E 9

您可以使用SwiftUI-Introspect来做到这一点。

UISlider您基本上只是从 SwiftUI访问底层Slider,然后在那里设置它。这比创建自定义滑块或制作可表示的滑块要容易得多。

代码:

struct ContentView: View {
    @State private var value: Double = 0

    var body: some View {
        Slider(value: $value)
            .introspectSlider { slider in
                slider.setThumbImage(UIImage(named: "Play_black"), for: .normal)
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果(临时图像):


小智 6

您可以使用 SwiftUI 中的 UIKit 来完成此操作appearance。

例子:

struct CustomSlider : View {
    @State private var value : Double = 0
    init() {
        let thumbImage = UIImage(systemName: "circle.fill")
        UISlider.appearance().setThumbImage(thumbImage, for: .normal)
    }
    
    var body: some View {
        Slider(value: $value)
    }
}
Run Code Online (Sandbox Code Playgroud)