Swift - 滑块(UISlider)的用法
(本文代码已升级至Swift4)
1,滑块的创建
2,设置滑块的值,同时有动画
3,滑块值改变响应
4,滑块左右两边槽的颜色
5,滑块后面槽线两侧添加图标
6,自定义滑块组件图片
1,滑块的创建
let slider = UISlider(frame:CGRect(x:0, y:0, width:300, height:50)) slider.center = self.view.center slider.minimumValue = 0 //最小值 slider.maximumValue = 1 //最大值 slider.value = 0.5 //当前默认值 self.view.addSubview(slider)
slider.setValue(0.8,animated:true)
slider.isContinuous = false //滑块滑动停止后才触发ValueChanged事件 slider.addTarget(self,action:#selector(sliderDidchange(_:)), for:UIControlEvents.valueChanged) @objc func sliderDidchange(_ slider:UISlider){ print(slider.value) }
slider.minimumTrackTintColor = UIColor.red //左边槽的颜色 slider.maximumTrackTintColor = UIColor.green //右边槽的颜色
slider.minimumValueImage = UIImage(named:"voice+") //左边图标 slider.maximumValueImage = UIImage(named:"voice-") //右边图标
//设置滑块右边部分的图片 slider.setMaximumTrackImage(UIImage(named:"slider_max"),for: .normal) //设置滑块左边部分的图片 slider.setMinimumTrackImage(UIImage(named:"slider_min"),for: .normal) //设置滑块的图片 slider.setThumbImage(UIImage(named:"slider_thumb"),for: .normal)
//设置滑块右边部分的图片-使用三宫格缩放(左右14像素不变,中间缩放) let imgTrackRight = UIImage(named:"slider_max") let imgRight = imgTrackRight!.stretchableImage(withLeftCapWidth: 14, topCapHeight:0) slider.setMaximumTrackImage(imgRight, for: .normal)
let slider=UISlider(frame:CGRectMake(0,0,300,50)) 创建的时候会提示 ‘CGRectMake’ is unavailable in Swift 是我打开方式不对吗?新手请航哥指点迷津
航哥,这上边的图片在哪里啊?自己去网上照图片半天找不到,或者贴个效果图看看也行哇!
航哥 问个问题 就是像下面这样的代码 对于slider来说我能不能添加两个UIControlEvents,因为我想实现 在valuechange的时候 能看到数值但是不想进行网咯请求数据 只想它停下来的时候请求最后的那个value的数据
rightslider.addTarget(self, action: "handleEventchangeValue:", forControlEvents: .ValueChanged)
rightslider.addTarget(self, action: "handleEventchange:", forControlEvents:UIControlEvents.TouchUpInside)