Регулируемый UIAccessibilityTrait не вводит инкремент () или декремент () - PullRequest
0 голосов
/ 17 июня 2019

У меня есть элемент (imageView), который показывает число.Я хочу, чтобы голос за пользователем проводил пальцем вверх, чтобы увеличить, и пальцем вниз, чтобы уменьшить.Всего на экране шесть номеров (изображений), и каждый номер отображает различный контент.

Для этого я сделал настройку вида:

imageView.accessibilityTraits = .adjustable

Я также реализовал следующие методы:

override func accessibilityIncrement() {
    print("increment")
}

override func accessibilityDecrement() {
    print("decrement")
}

Однако, когда япроверить это, Xcode не будет идти внутри методов увеличения или уменьшения.

Что я делаю не так?Может быть, есть лучший способ увеличить или уменьшить значение, используя голос за кадром?

1 Ответ

1 голос
/ 17 июня 2019

Полагаю, вы реализовали методы accessibilityIncrement() и accessibilityDecrement() в вашем контроллере представления, но они должны принадлежать созданному представлению изображения, черта которого должна быть .adjustable.

Просто подкласс UIImageView следующим образомв этом базовом примере:

class MyImageView: UIImageView {

    override var isAccessibilityElement: Bool {
        get { return true }
        set { }
    }

    override var accessibilityTraits: UIAccessibilityTraits {
        get { return .adjustable }
        set { }
    }

    override func accessibilityIncrement() {
        print("INCREMENT")
    }

    override func accessibilityDecrement() {
        print("DECREMENT")
    }
}

Вы просто должны определить, что делать в каждом настраиваемом методе, и что должно делать эту работу.

Я предлагаю вам взглянуть на thisсайт , где приведен полный пример настраиваемых значений с фрагментами кода и иллюстрациями для ObjC и Swift.

...