在 swift 中递增和递减步进器
incrementing and decrementing stepper in swift
我正在尝试在按下步进器时将一个元素append/remove添加到数组中。可以使用临时变量和 if 语句来完成此操作,但是是否有更简单的方法来访问步进器是递增还是递减?
您可以在附加到步进器的 @IBAction 中使用 switch 语句,如下所示:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
testStepper.minimumValue = -1.0
testStepper.maximumValue = 1.0
testStepper.value = 0
testStepper.autorepeat = false
}
@IBOutlet weak var testStepper: UIStepper!
@IBAction func testStepperHandler(_ sender: Any) {
switch testStepper.value {
case 1.0:
// add your item here
print("Item added")
testStepper.value = 0
default:
// remove your item here
print("Item removed")
testStepper.value = 0
}
}
}
即使没有直接的方法来访问步进器是递增还是递减,我们可以通过限制我们可以在viewDidLoad()
:将最小值设置为 -1.0,将 maximumValue
设置为 1.0,初始值为 0。然后,无论 switch 语句采用哪条路径,我们都需要将步进器的值重置为 0。当用户递增步进器时,将返回值 1,并执行第一种情况中的代码。由于只能返回 2 个值(递增 1.0,递减 -1.0),我们可以只使用默认值来处理所有其他情况。
将数组的长度与步进器更改函数中的 sender.value
进行比较
我正在尝试在按下步进器时将一个元素append/remove添加到数组中。可以使用临时变量和 if 语句来完成此操作,但是是否有更简单的方法来访问步进器是递增还是递减?
您可以在附加到步进器的 @IBAction 中使用 switch 语句,如下所示:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
testStepper.minimumValue = -1.0
testStepper.maximumValue = 1.0
testStepper.value = 0
testStepper.autorepeat = false
}
@IBOutlet weak var testStepper: UIStepper!
@IBAction func testStepperHandler(_ sender: Any) {
switch testStepper.value {
case 1.0:
// add your item here
print("Item added")
testStepper.value = 0
default:
// remove your item here
print("Item removed")
testStepper.value = 0
}
}
}
即使没有直接的方法来访问步进器是递增还是递减,我们可以通过限制我们可以在viewDidLoad()
:将最小值设置为 -1.0,将 maximumValue
设置为 1.0,初始值为 0。然后,无论 switch 语句采用哪条路径,我们都需要将步进器的值重置为 0。当用户递增步进器时,将返回值 1,并执行第一种情况中的代码。由于只能返回 2 个值(递增 1.0,递减 -1.0),我们可以只使用默认值来处理所有其他情况。
将数组的长度与步进器更改函数中的 sender.value
进行比较