class RootViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.backgroundColor = UIColor.whiteColor()
// 创建
let slider: UISlider = UISlider(frame: CGRectMake(20, 100, 200, 60))
// 添加到视图上
self.view.addSubview(slider)
self.createSubViews(slider)
}
private func createSubViews(slider: UISlider) {
// 设置最小值
slider.minimumValue = 10
// 设置最大值
slider.maximumValue = 80
// 设置默认值
slider.value = 30
// 设置左端图片
slider.setMinimumTrackImage(UIImage(named: "minimumTrackImage"), forState: .Normal)
// 设置右端图片
slider.setMaximumTrackImage(UIImage(named: "maximumTrackImage"), forState: .Normal)
// 读取当前滑块控件的值
let value = slider.value
print(value)
// 要想在滑块改变时收到通知,可以使用addTarget添加动作
slider.addTarget(self, action: #selector(RootViewController.sliderValueChange(_:)), forControlEvents: .ValueChanged)
// 在拖动时,发现上面的方法一直在触发。如果想要滑块停止拖动SliderValueVhange:方法,那么我们可以设置滑块的continuous属性为false,默认为true
slider.continuous = false
// 自定义滑块控件
// 定义左右图
let stetchLeftTrack: UIImage! = UIImage(named: "maximumTrackImage")
let stetchRightTrack: UIImage! = UIImage(named: "minimumTrackImage")
// 定义滑块图片
let thumbImage: UIImage! = UIImage(named: "thumbImage")
// 创建UISlider对象
let newSlider: UISlider = UISlider(frame: CGRectMake(30, 300, 257, 8))
newSlider.backgroundColor = UIColor.clearColor()
// 设置最大值及最小值
newSlider.minimumValue = 0.5
newSlider.maximumValue = 1.5
newSlider.value = 1.0 // 设置默认值
// 设置左右图片
newSlider.setMinimumTrackImage(stetchLeftTrack, forState: .Normal)
newSlider.setMaximumTrackImage(stetchRightTrack, forState: .Normal)
// 设置拖动圆点的图片,注意这里要加UIControlState.Highlighted的状态,否则当拖动滑块是滑块将变成原生的控件
newSlider.setThumbImage(thumbImage, forState: .Normal)
newSlider.setThumbImage(thumbImage, forState: .Highlighted)
// 添加通知,获取值改变
newSlider.addTarget(self, action: #selector(RootViewController.newSliderValueChange(_:)), forControlEvents: .ValueChanged)
// 滑块拖动后的事件
newSlider.addTarget(self, action: #selector(RootViewController.newSlidertouchUpInside(_:)), forControlEvents: .TouchUpInside)
self.view.addSubview(newSlider)
}
// 新方法拖动事件
@objc private func newSliderValueChange(sender: AnyObject?) {
let newSlider: UISlider = sender as! UISlider
print(newSlider.value)
}
// 新方法拖动后事件
@objc private func newSlidertouchUpInside(sender: AnyObject?) {
let newSlider: UISlider = sender as! UISlider
print(newSlider.value)
}
// 实现方法
@objc private func sliderValueChange(sender: AnyObject?) {
let newSlider: UISlider = sender as! UISlider
let value = newSlider.value
print(value)
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.backgroundColor = UIColor.whiteColor()
// 创建
let slider: UISlider = UISlider(frame: CGRectMake(20, 100, 200, 60))
// 添加到视图上
self.view.addSubview(slider)
self.createSubViews(slider)
}
private func createSubViews(slider: UISlider) {
// 设置最小值
slider.minimumValue = 10
// 设置最大值
slider.maximumValue = 80
// 设置默认值
slider.value = 30
// 设置左端图片
slider.setMinimumTrackImage(UIImage(named: "minimumTrackImage"), forState: .Normal)
// 设置右端图片
slider.setMaximumTrackImage(UIImage(named: "maximumTrackImage"), forState: .Normal)
// 读取当前滑块控件的值
let value = slider.value
print(value)
// 要想在滑块改变时收到通知,可以使用addTarget添加动作
slider.addTarget(self, action: #selector(RootViewController.sliderValueChange(_:)), forControlEvents: .ValueChanged)
// 在拖动时,发现上面的方法一直在触发。如果想要滑块停止拖动SliderValueVhange:方法,那么我们可以设置滑块的continuous属性为false,默认为true
slider.continuous = false
// 自定义滑块控件
// 定义左右图
let stetchLeftTrack: UIImage! = UIImage(named: "maximumTrackImage")
let stetchRightTrack: UIImage! = UIImage(named: "minimumTrackImage")
// 定义滑块图片
let thumbImage: UIImage! = UIImage(named: "thumbImage")
// 创建UISlider对象
let newSlider: UISlider = UISlider(frame: CGRectMake(30, 300, 257, 8))
newSlider.backgroundColor = UIColor.clearColor()
// 设置最大值及最小值
newSlider.minimumValue = 0.5
newSlider.maximumValue = 1.5
newSlider.value = 1.0 // 设置默认值
// 设置左右图片
newSlider.setMinimumTrackImage(stetchLeftTrack, forState: .Normal)
newSlider.setMaximumTrackImage(stetchRightTrack, forState: .Normal)
// 设置拖动圆点的图片,注意这里要加UIControlState.Highlighted的状态,否则当拖动滑块是滑块将变成原生的控件
newSlider.setThumbImage(thumbImage, forState: .Normal)
newSlider.setThumbImage(thumbImage, forState: .Highlighted)
// 添加通知,获取值改变
newSlider.addTarget(self, action: #selector(RootViewController.newSliderValueChange(_:)), forControlEvents: .ValueChanged)
// 滑块拖动后的事件
newSlider.addTarget(self, action: #selector(RootViewController.newSlidertouchUpInside(_:)), forControlEvents: .TouchUpInside)
self.view.addSubview(newSlider)
}
// 新方法拖动事件
@objc private func newSliderValueChange(sender: AnyObject?) {
let newSlider: UISlider = sender as! UISlider
print(newSlider.value)
}
// 新方法拖动后事件
@objc private func newSlidertouchUpInside(sender: AnyObject?) {
let newSlider: UISlider = sender as! UISlider
print(newSlider.value)
}
// 实现方法
@objc private func sliderValueChange(sender: AnyObject?) {
let newSlider: UISlider = sender as! UISlider
let value = newSlider.value
print(value)
}
}