UIAccessibilityTrait可调不输入swift的crement()或decrement()

时间:2019-06-17 09:39:06

标签: swift voiceover uiaccessibility

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

为此,我使视图可调:

imageView.accessibilityTraits = .adjustable

我还实现了以下方法:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

我猜您已经在视图控制器中实现了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提供了有关带有代码段和插图的可调值的完整示例。