gpt4 book ai didi

ios - UICollectionView 中辅助功能的顺序不正确

转载 作者:行者123 更新时间:2023-11-28 08:53:41 24 4
gpt4 key购买 nike

所以我在 UIViewController 中有一个 UICollectionView,它是选项卡栏中的 Root View Controller 之一。我为 UICollectionView 设置了一个 contentInset,这样我就可以在 collectionView 的顶部添加一个标签,这意味着 UILabel 是 collectionView 的一部分,但不是 collectionView 的 headerView 的一部分。为了实现将 UILabel 添加到 UICollectionView,我使用

collectionView.addSubview(theLabel)

然后我打开语音并运行应用程序。发生的事情是画外音以正确的顺序通过所有 UICollectionViewCells 一直到最后一个 CollectionViewCell 开始,然后转到位于 collectionView 顶部的标签,然后转到 tabBar。我在这个 Change order of read items with VoiceOver 中尝试了答案, 但没有运气,这个解决方案确实改变了

self.accessibilityElements

按照我想要的方式,除了画外音并没有真正遵循 self.accsibilityElements 中的顺序而且我不太确定发生了什么,有没有人遇到过同样的麻烦,因为可访问性顺序被搞砸了在 UICollectionView 上使用了“addsubView”。如果(我说如果,因为我认为没有人会以这种方式向 collectionView 添加 subview )任何人有任何想法请在这里帮助我,这个错误被困的时间最长。

编辑

class CollectionViewSubViewsAddedByTags: UICollectionView {

override func awakeFromNib() {
super.awakeFromNib()
}

var accessibilityElementsArray = [AnyObject]()

override var accessibilityElements: [AnyObject]?{

get{
return accessibilityElementsArray
}

set(newValue) {
super.accessibilityElements = newValue
}
}

override func accessibilityElementCount() -> Int {
return accessibilityElementsArray.count
}

override func accessibilityElementAtIndex(index: Int) -> AnyObject? {
return self.accessibilityElementsArray[index]
}

override func indexOfAccessibilityElement(element: AnyObject) -> Int {
return (accessibilityElementsArray.indexOf({ (element) -> Bool in
return true
}))!
}

override func didAddSubview(subview: UIView) {
super.didAddSubview(subview)
accessibilityElementsArray.append(subview)
accessibilityElementsArray.sortInPlace { $0.tag<($1.tag)}
}

override func willRemoveSubview(subview: UIView) {
super.willRemoveSubview(subview)
if let index = (accessibilityElementsArray.indexOf({ (element) -> Bool in
return true
})) {
accessibilityElementsArray.removeAtIndex(index)
}

}

}

谢谢,沙布里

最佳答案

我遇到了同样的问题 - 我在我们的 UICollectionView 上使用顶部插图来为标题留出空间,该标题可以通过滚动在屏幕上滑动/关闭。如果我对这种布局使用画外音,那么整个系统就会变得困惑,并且焦点顺序不正确。我为解决此问题所做的工作是在激活 VO 时使用备用布局 - 我不是将标题放在带有插图的 Collection View 上,而是将标题垂直放置在 Collection View 上方并在 Collection View 上设置 0 top inset .

关于ios - UICollectionView 中辅助功能的顺序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33640472/

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