更改 UISlider thumbImage 的大小

Posted

技术标签:

【中文标题】更改 UISlider thumbImage 的大小【英文标题】:Change the size of a UISlider thumbImage 【发布时间】:2015-10-10 22:30:17 【问题描述】:

如何更改用作 thumbImage 的 UIImage 的大小。我用来设置图像的代码如下。

let image: UIImage = UIImage(assetIdentifier: UIImage.AssetIdentifier.Slider)

我使用枚举来获取图像,那里没有问题。

我用来设置 thumbImage 的代码如下。

self.setThumbImage(image, forState: UIControlState.Normal)

我已尝试使用以下代码更改拇指图像大小,但找不到解决方案。

let trackRect: CGRect = CGRect(x: 0.0, y: 0, width: self.frame.size.width, height: self.frame.size.height)
let thumbRect: CGRect = CGRect(x: 0.0, y: 0.0, width: 12.0, height: 12.0)
thumbRectForBounds(thumbRect, trackRect: trackRect, value: 0.0)

图片目前约为 40pt x 40pt(它是一个圆圈)。我希望图像的大小约为 24pt x 24pt。

另外,这是在 XCode 7 上的 Swift 2 中。我知道这些方法适用于 ios8.0 或更高版本,这是我的部署目标。

【问题讨论】:

【参考方案1】:

拇指将是您提供的图像的大小。 要获得 24pt x 24pt 的拇指,您必须提供 48px x 48px(@3 为 72x72)图像。这也会影响滑块框架。

如果需要,您可以定义一个扩展来动态调整图像大小:

extension UIImage

    func imageWithImage(image: UIImage, scaledToSize newSize: CGSize) -> UIImage
        
         UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
         image.drawInRect(CGRectMake(0, 0, newSize.width, newSize.height))

         let newImage = UIGraphicsGetImageFromCurrentImageContext()    
         UIGraphicsEndImageContext()

         return newImage;
    

这样你甚至可以做一些很酷的事情,比如在滑块接近最大值和最小值时,拇指会增长和缩小。

【讨论】:

感谢您的回答。我感谢您的帮助,但就增长和缩小而言,我认为这不是好的 UI。只是一个意见。

以上是关于更改 UISlider thumbImage 的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式更改 UISlider 拇指图像的大小

UISlider 延迟调用touchesBegan,延迟调用valueChangeHandle。delay?

iOS开发UISlider设置图片 滑块不能滑到最左最右边

UISlider 值更改未触发

使用 UISlider 更改画笔大小

根据 UISlider 的值更改 NSTime