当滑块具有极端最大值时 UISlider MaximumTrackImage 剪辑

Posted

技术标签:

【中文标题】当滑块具有极端最大值时 UISlider MaximumTrackImage 剪辑【英文标题】:UISlider MaximumTrackImage clips when slider has extreme max values 【发布时间】:2016-04-26 08:33:06 【问题描述】:

我使用 Xcode 的故事板将 UISlider 拖到了我的视图中。然后我做了一个插座和自定义滑块的外观(在 Swift 中)如下:

slider.setMinimumTrackImage(UIImage(named: "Images/slider_min.png")?.stretchableImageWithLeftCapWidth(3, topCapHeight: 0), forState: UIControlState.Normal)
slider.setMaximumTrackImage(UIImage(named: "Images/slider_max.png")?.stretchableImageWithLeftCapWidth(3, topCapHeight: 0), forState: UIControlState.Normal)
slider.setThumbImage(UIImage(named: "Images/slider_thumb.png"), forState: UIControlState.Normal)
slider.setThumbImage(UIImage(named: "Images/slider_thumb.png"), forState: UIControlState.Highlighted)

滑块是阶梯式的,因此可能的值是整数 ∈ [1,12]。

这些是引用的图像,它们是透明的 PNG:

由于某种原因,我遇到了两个最大可能值(11、12)的问题:MaximumTrackImage 剪辑。这就是发生的事情:

    初始,最小位置,值 = 1 最后一个 OK 位置,值 = 10 剪辑发生的第一个位置,值 = 11 最大位置,仍在裁剪,值 = 12

为什么会这样?这可以解决还是有任何解决方法?

【问题讨论】:

【参考方案1】:

哦,看来问题出在MaximumTrackImage 上——它太宽了。我将轨道图像裁剪为 6 px 宽,问题就消失了。

裁剪 MaximumTrackImage 就足够了,但裁剪 MinimumTrackImage 也没有什么坏处。

【讨论】:

以上是关于当滑块具有极端最大值时 UISlider MaximumTrackImage 剪辑的主要内容,如果未能解决你的问题,请参考以下文章

IOS - 当滑块值改变时设置 UILabel Swift

UISlider 不流畅

在 UISlider 下添加数字

使用 UISlider 移动到图像视图

iOS - UISlider 在第一次触摸时跳跃

如何移除 UISlider 的预填充