ios – 背景VoiceOveraccessibility专注于UICollectionView

前端之家收集整理的这篇文章主要介绍了ios – 背景VoiceOveraccessibility专注于UICollectionView前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在collectionview上有画外音问题.我有一个包含5个单元格的全屏(减去导航栏)UICollectionView.每个单元格都包含一个isAccessibilityElement = true的视图.

激活VoiceOver后,导航栏中的标题将被聚焦.如果我然后通过左/右滑动移动焦点,则每个单元格项目都是一个接一个地聚焦,就像人们期望的那样.问题是,如果我通过在屏幕上向下拖动手指来移动焦点.然后,当手指在任何单元格之外时,屏幕的背景(即集合视图的区域)接收焦点.

有没有办法把它关掉?

我试过了:

class MyViewController: UICollectionViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        // A. This makes everything in the collection inaccessible,both 
        // background and cell content. 
        //collectionView?.accessibilityElementsHidden = true

        // B. This has no effect
        //collectionView?.isAccessibilityElement = false
    }  
...

我希望B能够工作,但它没有(没有任何反应).我还尝试过各种其他的东西:self.view.isAccessibilityElement = false,self.view.superview.isAccessibilityElement = false但没有成功.

希望有人可以帮忙!

解决方法

使用VoiceOver遍历集合视图就像遍历可调整其特征属性的可访问元素.

集合视图的每个元素都是UIAccessibilityElement,必须在代码中重新定义.

为了理解应该如何实现,我建议你看一下WWDC 2018 – 提供一个特殊的可访问性体验视频,其内容完美地汇总为here,其示例可以是downloaded ……在此类编程之后将不会关注背景中的任何对象.

猜你在找的iOS相关文章