SwiftUI滑块自定义缩略图

vm0i2vca  于 2022-12-22  发布在  Swift
关注(0)|答案(1)|浏览(168)

有没有办法自定义SwiftUI滑块上的缩略图?
我知道有几种方法使用UIKit,但理想情况下,我想完全远离。
我正在创建一个自定义的滑块与刻度线如下:

ZStack {
            HStack {
                ForEach(0...10, id: \.self) { _ in
                    Text("I")
                        .frame(maxWidth: .infinity)
                        .foregroundColor(ColorStyle(colorAsset: .lightGrey).color)
                }
            }
            Slider(value: $viewModel.sliderValue, in: minSlider...maxSlider, step: sliderStep)
                .tint(ColorStyle(colorAsset: .lightGrey).color)
        }
lb3vh1jj

lb3vh1jj1#

IOS14及更高版本:
可以使用thumImage修改器自定义SwiftUI滑块上的缩略图图像。

Slider(value: $sliderValue, in: 0...100, step: 1)
    .thumbImage(yourCustomImage)

IOS 13及更低版本:
要创建带有自定义缩略图图像的自定义滑块样式,您需要创建一个符合SliderStyle协议的新结构:

struct MySliderStyle: SliderStyle {
    func makeThumb(configuration: Self.ThumbConfiguration) -> some View {
      // Return your custom thumb image here
    }
}

若要使用此自定滑块样式,可以使用sliderStyle修饰符将其应用于滑块,如下所示:

Slider(value: $sliderValue, in: 0...100, step: 1)
   .sliderStyle(MySliderStyle())

相关问题