iOS学习笔记(七):UISlider

前面所列出的控件都有一个共同的特点,即状态的变化或值的变化都是离散的,如UIButton的正常、高亮、选中,UISwitch的开和关,UISegmentedControl按钮值的切换等。UISlider(滑块)控件与上述控件最大的区别就是其值的变化可以是连续的,因此,UISlider可以处理一些连续变化量的交互逻辑。

一、UISlider的创建与常规设置

import UIKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //定义UISlider
        let slider = UISlider(frame:CGRect(x: 20, y: 100, width: 280, height: 30))
        //设置触发方法是否连续触发
        slider.isContinuous = true
        //最小值
        slider.minimumValue = 0
        //最大值
        slider.maximumValue = 10
        //滑块槽左中轴的颜色
        slider.minimumTrackTintColor = UIColor.red
        //滑块槽右中轴的颜色
        slider.maximumTrackTintColor = UIColor.green
        //滑块本身的颜色
        slider.thumbTintColor = UIColor.blue
        //绑定事件
        slider.addTarget(self, action: #selector(changevalue), for: .valueChanged)
        //添加到主视图
        self.view.addSubview(slider)
    }
    
    @objc func changevalue(slider:UISlider) {
        print(slider.value)
    }

}

运行结果如下图:

isContiunous属性用于设置UISlider的触发方法是否连续触发,设置Bool值为真,用户在滑动滑块时,触发方法就会多次执行;如果设置Bool值为假,只有当用户滑动操作结束时,方法才会触发。minimunValue设置UISlider控件的最小值,即滑块在最左端时控件的值;maximunValue设置UISlider控件的最大值,即滑块在最右端时控件的值;minimumTrackTintColor和maximumTrackColor设置滑块槽左右中轴的颜色;thumTintColor设置滑块本身的颜色。

上述代码还使用了addTarget方法绑定事件,获取了当前控件的值并进行了逻辑处理。

二、对UISlider添加图片修饰

UISlider类提供了一些方法对UISlider控件进行图片修饰,示例代码如下:

//设置左视图图片
slider.minimumValueImage = UIImage(named: "image")
//设置右视图图片
slider.maximumValueImage = UIImage(named: "image")
//设置某个状态下滑块的图片
slider.setThumbImage(UIImage(named: "image"),for:.normal)

运行效果如下图所示:

发表评论

电子邮件地址不会被公开。 必填项已用*标注