UIAccessibilityTrait可调不进入increment()或decrement()swift

UIAccessibilityTrait adjustable does not enter increment() or decrement() swift

我有一个显示数字的元素(一个 imageView)。 我希望语音用户向上滑动以增加并向下滑动以减少。 一共有六个数字(图像),每个数字代表不同的屏幕内容。

为此,我调整了视图:

imageView.accessibilityTraits = .adjustable

我还实现了以下方法:

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

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

但是,当我对此进行测试时,Xcode 不会进入递增或递减方法。

我做错了什么?是否有更好的方法来使用画外音来增加或减少值?

我猜你在视图控制器中实现了 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 site,其中为 ObjC 和 Swift.

提供了带有代码片段和插图的可调整值的完整示例