如何将UISlider设置为只有一个轨迹图像而不是在Swift中使用最小轨迹图像和最大轨迹图像?

时间:2017-04-11 22:20:57

标签: swift image interface uislider

您好我想知道如何为我的自定义滑块设置一个轨道图像。我有一个问题,如果我使用相同的图像设置最小轨迹图像和最大轨迹图像,我的滑块在拇指图像中有一个间隙,如在此图片中。 in this picture

这是我的自定义类UISlider代码。

  import UIKit

class NightVisionSlider: UISlider {

   required init?(coder: NSCoder) {
        super.init(coder:coder)



      self.setThumbImage(UIImage(named:"Night Vision Slider Knob3.png")!, for:.normal)

        let trackingImage = UIImage(named:"Night Vision Bar 2.png")!

      self.setMinimumTrackImage(trackingImage, for:.normal)

       self.setMaximumTrackImage(trackingImage, for:.normal)

    }


}

我怎样才能拥有一个完整的跟踪图像,所以我的滑块没有这个缺陷?

1 个答案:

答案 0 :(得分:0)

class CustomSlider: UISlider
{

    override func awakeFromNib()
    {
       super.awakeFromNib()
       self.setThumbImage(UIImage(named:"Night Vision Slider Knob3.png")!, for:.normal)

       let trackingImage = UIImage(named:"Night Vision Bar 2.png")!

       self.setMinimumTrackImage(trackingImage, for:.normal)

       self.setMaximumTrackImage(trackingImage, for:.normal)

    }
    override func layoutSubviews()
    {
        super.layoutSubviews()
        super.layer.cornerRadius = self.frame.height/2  //Do something additional if you want to do!.
    }

    override func trackRect(forBounds bounds: CGRect) -> CGRect
    {
        var newBounds = super.trackRect(forBounds: bounds)
        newBounds.size.height = 10 //Size of your track 
        return newBounds
    }
}