更改UISlider thumbImage的大小

时间:2015-10-10 22:30:17

标签: ios uiimage uikit swift2 uislider

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

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

我使用Enum来获取图像,没问题。

我用来设置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到40pt(它是一个圆圈)。我希望图像大约在24pt到24pt左右。

此外,这是在XCode 7上的Swift 2中。我理解这些方法适用于iOS8.0或更高版本,这是我的部署目标。

1 个答案:

答案 0 :(得分:6)

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

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

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;
    }
}

这样你甚至可以做一些很酷的东西,比如滑动拇指长大和缩小的滑块,因为它接近最大值和最小值。