如何实现最小轨道从中心(值=0)开始而不是左侧的滑块

How to implement a slider whose minimum track is begin from center(value=0) not left

就是这样。

有什么方法可以让 UISlider 的子类实现吗?

编辑: 也许我误导了你,但这确实是一个 UI 的问题。

解决。

  1. create fakeThumbImageView fakeMinTrackImageView fakeMaxTrackImageView 并在 thumbRectForBounds:trackRect:value:

  2. override setMinimumTrackTintColor: setMinimumTrackImage: 和其他一些方法(共6个)

  3. 调用super setMinimumTrackTintColor:[UIColor clearColor]等初始化方法

  4. 建议制作fakeXXXXImageView.layer.zPosition=1000

首先设置 minimumTrackTintColor = .clearself.maximumTrackTintColor = .clear。然后,您可以创建一个具有相同轨道的 width/height 的视图,并将其放在 UISlider 的正下方。使用此视图,您可以将 leadingConstrainttrailingConstraint 设置为在中间压缩(初始位置,当 UISlider 值为 0.5 时)。因此,每当 UISlider 值发生变化时,您都可以重新计算约束以实现您想要的结果。