увеличение и уменьшение шага в быстром - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь добавить / удалить элемент в массиве при нажатии моего степпера. Это возможно сделать sh, используя временные переменные и операторы if, но есть ли более простой способ получить доступ к тому, был ли шагер увеличен или уменьшен?

1 Ответ

1 голос
/ 03 апреля 2020

Вы можете использовать оператор switch внутри @IBAction, присоединенного к вашему степперу, например:

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. Затем нам нужно сбросить значение степпера на 0 независимо от того, какой путь выберет оператор switch. Когда пользователь увеличивает шаговый шаг, будет возвращено значение 1, и код в первом случае будет выполнен. Поскольку есть только 2 значения, которые могут быть возвращены (1,0 для приращения или -1,0 для приращения), мы можем просто использовать значение по умолчанию для обработки всех других случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...