Swift 使用 UISlider

在这里插入图片描述
UISlider 跟 UISwitch 有点儿类似,都是继承自 UIControl

既然 UISlider 是表示一个 CGRange,那么就有一个最大值(maximumValue)和一个最小值(minimumValue),既然 UISlider 又是一个选择器,那么就有一个当前的选择值(value),这三个值都是 UISlider 的属性。

同样的,UISlider 选择器被改变时,会触发 UIControlEventValueChanged 的事件,所以我们可以通过添加 addTarget::: 方法为事件添加处理方法。

1.创建 UISlider

    private lazy var mySlider: UISlider = {
    
    
        let slider = UISlider()
        ///minimunmValue 当值可以改变时,滑动为最小。默认为0.0
        slider.minimumValue = 0
        //maximumValue 当值可以改变时,滑动为最大。默认为1.0
        slider.maximumValue = 1
        //当前值为多少
        slider.value = 0.0  
        //小于当前滑动的颜色
        slider.minimumTrackTintColor = .red
        //大于当前滑动的颜色
        slider.maximumTrackTintColor = RGBA(238)
        //当前滑动按钮的颜色
        slider.thumbTintColor = rgba(78, 139, 254, 1)
        return slider
    }()

1.1 滑动按钮可以使用图片 UIImage替换

mySlider.setThumbImage(image, for: .normal)
mySlider.setThumbImage(image, for: .highlighted) 

1.2 滑块左边和右边使用图片替换(未测试)

mySlider.minimumValueImage = UIImage(named: "")
mySlider.maximumValueImage = UIImage(named: "")

1.3 滑动监听

//true 则实时输出,false:当滑动停止输出 默认为true
mySlider.isContinuous = false
mySlider.addTarget(self, action: #selector(sliderChange(_:)), for: .valueChanged)


///slider滑动事件
@objc private func sliderChange(_ slider: UISlider) {
    
    
    let value = slider.value
    print(value)
}

1.4 添加监听

mySlider.isContinuous = true
mySlider.addTarget(self, action: #selector(sliderChange(_:_:)), for: .valueChanged)

///slider滑动事件
@objc private func sliderChange(_ slider: UISlider, _ event: UIEvent) {
    
    
    let value = slider.value
    print(value)
    
    if let touchEvent = event.allTouches?.first {
    
    
        switch touchEvent.phase {
    
    
        case .began:
            print("开始拖动")
        case .moved:
            print("正在拖动")
        case .ended:
            print("结束拖动")
        default:
            break
        }
    }
}

猜你喜欢

转载自blog.csdn.net/u014651417/article/details/124275391