如何将渐变应用于任何视图的重音颜色 - SwiftUI

Anj*_*iya 1 slider ios swiftui

在这里,我正在使用 Slider。我们可以accentColor像这样改变Slider ,

Slider(value: $tip, in: 0...50, step: 1)
     .accentColor(.red) 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是如何申请Gradient一个accentColor

我试图通过屏蔽滑块来应用渐变,但后来我无法再滑动它了。

LinearGradient(gradient: Gradient(colors: [.red, .blue]), startPoint: .top, endPoint: .bottom)
     .mask(Slider(value: $tip, in: 0...50, step: 1))
Run Code Online (Sandbox Code Playgroud)

那么有没有什么间接的方法呢?

Ene*_*man 8

ZStack {
      LinearGradient(
          gradient: Gradient(colors: [.red, .blue]), 
          startPoint: .leading, 
          endPoint: .trailing
      )
      .mask(Slider(value: $val, in: 0...50, step: 1))

      // Dummy replicated slider, to allow sliding
      Slider(value: $val, in: 0...50, step: 1)
          .opacity(0.05) // Opacity is the trick here.
         // .accentColor(.clear) 
         // instead setting opacity, 
         // setting clear color is another alternative
         // slider's circle remains white in this case
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明