gpt4 book ai didi

ios - VoiceOver 焦点将 UICollectionView 重置为第一个条目?

转载 作者:IT王子 更新时间:2023-10-29 08:09:43 24 4
gpt4 key购买 nike

我正在使用 VoiceOver,但 UICollectionView 有问题。我有一个包含十个按钮的初始屏幕,每个按钮都链接到 Collection View 中十个单元格之一。 Collection View 实际上是屏幕的全尺寸,每个单元格包含一个 subview Controller 。这一切在 VoiceOver 关闭时工作正常,但当它打开时,激活集合中间的一个按钮总是会导致 Collection View 弹出到它的第一个单元格,即使我没有点击第一个按钮。我认为这是因为 VoiceOver“焦点”转到它看到的第一个元素(即第一个单元格)。

我尝试过使用 UIAccessibilityScreenChangedNotification 并使用带有相关单元格参数的 Layout 进行同样的操作,但这没有任何区别,它不会弹出到我需要的元素,并且总是弹出到集合中的第一个单元格。

我在这里做错了什么?

我正在添加一个片段,它在 viewDidLayoutSubviews 中调用,如果 VoiceOver 关闭,它可以很好地用于实际滚动。但是一旦 VO 打开,它就会中断。

if (self.initialIndexPath) {
[self.collectionView scrollToItemAtIndexPath:self.initialIndexPath atScrollPosition:UICollectionViewScrollPositionNone animated:NO];
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, [self.collectionView cellForItemAtIndexPath:self.initialIndexPath]);
}

这对于实际关注单元格非常有效,但 VoiceOver 部分被完全忽略,通知根本不会将焦点转移到正确的单元格,它始终是第一个单元格中的第一个元素。

还要注意,单元格本身不是 accessibilityElements,也不应该是,它们实现了 UIAccessibilityContainer 协议(protocol),因此每个单元格的标题标签将是我希望焦点结束的地方上。

最佳答案

这是 iOS 中的错误,现已修复。

我开始在 iOS8 中看到这个错误。并于 2014 年 11 月 6 日向 Apple 报告了一个错误。已在 iOS 9.3.2 中修复。

如果您使用的是受影响的操作系统版本,作为开发人员您将无能为力。推荐您应用的用户更新操作系统。

关于ios - VoiceOver 焦点将 UICollectionView 重置为第一个条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27396792/

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