当滑块具有极端最大值时,UISlider MaximumTrackImage 剪辑
UISlider MaximumTrackImage clips when slider has extreme max values
我使用 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
为什么会这样?可以解决这个问题还是有任何解决方法?
哦,好吧,问题似乎出在 MaximumTrackImage 上——它太宽了。我将轨道图像的宽度裁剪为 6 px,问题消失了。
裁剪 MaximumTrackImage 就足够了,但裁剪 MinimumTrackImage 也没什么坏处。
我使用 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
为什么会这样?可以解决这个问题还是有任何解决方法?
哦,好吧,问题似乎出在 MaximumTrackImage 上——它太宽了。我将轨道图像的宽度裁剪为 6 px,问题消失了。
裁剪 MaximumTrackImage 就足够了,但裁剪 MinimumTrackImage 也没什么坏处。