在iOS中使用VoiceOver的用户无法访问“UIPanGestureRecognizer”

时间:2017-07-22 18:12:24

标签: ios swift accessibility uipangesturerecognizer voiceover

以下代码在屏幕上的整个视图中添加UIPanGestureRecognizer。当用户用一根手指在屏幕上平移时,会识别平移/滑动操作并触发recognizePanGesture(sender: UIPanGestureRecognizer)

不幸的是,虽然我的UIPanGestureRecognizer代码目前不符合辅助功能。

问题:

如何更改以下代码,以确保在iOS中使用VoiceOver的用户可以完全访问它?

在VoiceOver处于活动状态时进行平移时,用户通常使用的特殊手势操作是什么?

代码:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        panGestureAdd()
    }

    func panGestureAdd() {
        let panGesture: UIPanGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(ViewController.recognizePanGesture(_:)))
        panGesture.minimumNumberOfTouches = 1
        panGesture.maximumNumberOfTouches = 1
        self.view.addGestureRecognizer(panGesture)
    }

    func recognizePanGesture(sender: UIPanGestureRecognizer) {
        print("UIPanGestureRecognizer active.")
    }

}

1 个答案:

答案 0 :(得分:1)

VoiceOver用户可以通过在"传递"前加上前缀来执行操作。手势(在继续手势之前,单指双击并按住)。您可能希望提供一种访问控件的替代方法。一种方法可能是添加并符合UIAccessibilityTraitAdjustable特征。