gpt4 book ai didi

ios - 如何使 UICollectionView 在读出其第一个单元格的标签之前读取其自己的辅助功能标签?

转载 作者:行者123 更新时间:2023-11-29 05:10:55 27 4
gpt4 key购买 nike

目前,我有一个包含 UICollectionView 的容器 View ,其中包含许多支持辅助功能的单元格。

使用 VoiceOver 时,我可以循环浏览应用程序中的所有元素,当我进入容器 View 时,它将循环浏览所有单元格及其标签(我没有启用任何辅助功能方法或属性)我的容器 View )。

但是,我希望这样我可以为 UICollectionView 分配一个辅助功能标签,以便 VO 在读取第一个单元格的辅助功能标签之前首先读取 UICollectionView 的辅助功能标签。

即,CollectionView 标签正上方的按钮:“Button”CollectionView的标签:“过滤栏”单元格 1(默认选择)标签:“体育”单元格 2 的标签:“Chevrolet”

场景:当用户选择“按钮”并向右滑动时, TableView 中的第一个单元格将被选中。

预期结果:画外音为:“筛选栏,已选择,运动,按钮”

实际结果:画外音为:“已选择,运动,按钮”。

是否可以让 VO 首先读取 Collection View 的辅助功能标签?

最佳答案

UICollectionView 可以被视为一个容器,其中嵌入了许多元素(其单元格),并且,按原样,您不能同时拥有父 View < em>( Collection View ) 及其 subview (其单元格) both accessible使用 VoiceOver:可以选择 Collection View 或其单元格

Is it possible to make VO read the accessibility label of the collection view first?

按照上面的解释,您不能使用当前的配置。
但是,解决方案可能是创建一个 UIAccessbilityElement,用您想要读出的简单标签包装您的 Collection View :该元素将在 Collection View 单元格依次被选择之前被选择。

最后,我强烈建议您看一下这个detailed WWDC video里面的演示。这可能会为您的用例提供一些有用的提示。

⚠️ ⬛️◼️🔳▪️ 编辑 ▪️🔳◼️⬛️ ⚠️ (MarkS 评论后)

I'm trying to figure out a way to wrap it, but so far I've been unsuccessful.

尝试下面的代码片段来创建您的辅助功能元素:

class ViewController: UIViewController {

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)

let a11yWrapper = UIAccessibilityElement(accessibilityContainer: view!)

a11yWrapper.accessibilityFrameInContainerSpace = CGRect.init(x: 40.0,
y: 40.0,
width: 100.0,
height: 50.0)
a11yWrapper.accessibilityLabel = "Filter Bar"
a11yWrapper.accessibilityTraits = .staticText

view.accessibilityElements = [a11yWrapper]
}
}

使其适应您的应用环境,应该让 VO 首先读取 Collection View 的辅助功能标签

There aren't any examples in the documentation which specifically go over this situation.

我认为这是因为你的设计不应该这样做。
通常,要么是 Collection View 本身,要么是它的单元格是可访问的,而不是像前面解释的那样两者都可访问。

但是,根据您在帖子中公开的内容,您可以使用 custom actions也达到你的目的:每个 Action 都对应一个特定的单元格......这绝对不完美,但它已经尽可能接近你所要求的了。

关于ios - 如何使 UICollectionView 在读出其第一个单元格的标签之前读取其自己的辅助功能标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59691061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com