ios - 当 slider 具有极端最大值时,UISlider MaximumTrackImage 剪辑

标签 ios swift uislider

我使用 Xcode 的 Storyboard将 UISlider 拖到我的 View 中。然后我制作了一个 socket 并自定义了 slider 的外观(在 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)

slider 是步进的,因此可能的值是整数∈[1,12]。

这些是引用图像,它们是透明的 PNG:
slider_min.png slider_max.png slider_thumb.png

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

custom UISlider with different values

  1. 初始,最小位置,值= 1
  2. 最后一个 OK 位置,值 = 10
  3. 第一个发生裁剪的位置,value = 11
  4. 最大位置,仍然剪裁,值= 12

为什么会这样?这可以修复吗?是否有任何解决方法?

最佳答案

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

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

关于ios - 当 slider 具有极端最大值时,UISlider MaximumTrackImage 剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36859488/

相关文章:

ios - Swift中UICollectionView如何提高获取照片缩略图并显示的效率

ios - 如何解决此错误 "Cannot invoke getObejectAtPath with argument list type of string"

ios - 可以在 iOS 11.3 beta、xCode 9.3 beta、ARKit 1.5 上跟踪同一 ARReferenceImage 的多个条目

swift - 如何防止用户与最前面的自定义 View 后面的对象进行交互?

ios - UISliders 和 UILabels 和 viewControllers

ios - 自定义UISlider拇指图标: How to stop thumb icon from reverting back to default circle icon when drag?

ios - 当幻灯片拖动时,如何在动态表格 View 单元格的标签上显示幻灯片的当前值?

ios - 自定义 UICollectionViewFlowLayout 问题

ios - iOS10 的 NSPersistentContainer 和单元测试

ios - 使用标签栏在 View 中关闭键盘