iOS学习笔记(十):UIStepper

UIStepper(步进控制器)从名字上就能大致了解其功能。不同于UISlider,UIStepper是进行离散式数据调节的常用视图控件。

一、UIStepper基本属性的使用

import UIKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //定义UIStepper
        let stepper = UIStepper()
        //设置UIStepper的位置
        stepper.center = CGPoint(x: 100, y: 200)
        //stepper绑定的事件是否连续触发
        stepper.isContinuous = true
        //是否自动重复
        stepper.autorepeat = true
        //是否循环
        stepper.wraps = true
        //控制器最小值
        stepper.minimumValue = 1
        //控制器最大值
        stepper.maximumValue = 10
        //步长
        stepper.stepValue = 1
        //控件颜色
        stepper.tintColor = UIColor.red
        //添加到主视图
        self.view.addSubview(stepper)
        //绑定触发方法
        stepper.addTarget(self, action: #selector(click), for: .valueChanged)
    }
    
    @objc func click(stepper:UIStepper)
    {
        print(stepper.value)
    }
    
}

运行结果如下所示:

上面的属性中,isContiunous属性设置触发方法是否连续执行,当用户按住步进控制器上某个按钮不放时,如果属性设置为Bool值真,添加的触发方法就会一直连续执行,步进控制器的值每改变一次方法就执行一次。autorepeat属性从字面上理解为自动重复,当autorepeat属性设置为Bool值真时,用户如果按住步进控制器按钮不放,步进控制器的值就会一直连续改变;若autorepeat属性设置为Bool值假,直到用户手指抬起完成一次单击动作,步进控制器的值才会改变,触发方法才会执行。

而warps属性设置步进控制器的值是否循环,如果设置Bool值真,当值增加到最大时,用户继续单击增加按钮,值就会从最小值重新开始增加;反之,若设置Bool值假,当步进控制器到达极值时,相应的按钮会被禁用。

二、自定义UIStepper按钮图片

在上面的例子中我们可以看到,系统的UIStepper默认显示的是一个减号和一个加号,单击减号值减小,单击加号值增加。当然,我们也可以通过以下方法自定义两个按钮图片:

//设置减按钮图片
stepper.setDecrementImage(UIImage(named: "image")?.withRenderingMode(.alwaysOriginal), for: .normal)
//设置加按钮图片
stepper.setIncrementImage(UIImage(named: "image")?.withRenderingMode(.alwaysOriginal), for: .normal)

只设置减按钮图片的效果如下所示:

发表评论

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