提问者:小点点

在将UIAccessibility焦点更改为其他元素之前,防止再次进行语音广播


我有视野。 在双击动作中,我隐藏了它。 但在发布到其他视图之前,它会再次宣布。 下面是代码片段。

func setUpAccessibility() {
                    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(blockLabelViewSwipeGesture))
                    blockContainerView.accessibilityLabel = "Some text label"
                    blockContainerView.accessibilityHint = "Double tap to dismiss"
                    blockContainerView.isAccessibilityElement = true
                    blockContainerView.addGestureRecognizer(tapGesture)
}

    @objc private func blockLabelViewSwipeGesture(_ gestureRecognizer: UISwipeGestureRecognizer { 
             UIAccessibility.post(notification: .layoutChanged, argument: self.headerView)
            //Dismiss view 
            ///DO some work
}

共1个答案

匿名用户

来解决这个问题。 在action方法中,我们需要将accessibilityLabel设置为空,如果accessibilityHint存在,则将其设置为空sting。 下面是代码片段。

 @objc private func blockLabelViewSwipeGesture(_ gestureRecognizer: UISwipeGestureRecognizer { 
            blockContainerView.isAccessibilityElement = false
            blockContainerView.accessibilityLabel = ""
            blockContainerView.accessibilityHint = ""

           UIAccessibility.post(notification: .layoutChanged, argument: self.headerView)
            //Dismiss view 
            ///DO some work
}