【问题标题】:Override UIAccessibilityLayoutChangedNotification when UICollectionView changes layout当 UICollectionView 更改布局时覆盖 UIAccessibilityLayoutChangedNotification
【发布时间】:2016-03-18 14:46:03
【问题描述】:

我正在尝试在我的收藏视图上启用画外音辅助功能。 1.选择一个项目后,它将删除该部分中的其余项目,只留下被选中的项目。 2. 当我再次选择该项目时,它会使用之前删除的项目重新填充该部分。

对于第 1 步,画外音可以很好地读出项目,并且它将成为布局更改后的焦点。

但是,对于第 2 步,事情变得有点奇怪。它会开始读出该项目,在它完成之前,焦点会跳转到另一个项目,并开始阅读那个项目。

根据 Apple 关于集合视图的文档,它会在布局发生时自动发布布局更改通知。但是,从外观上看,它是在布局更改后将一些随机元素传递给第一个焦点元素。

当集合视图更改其屏幕布局时,它会发布 UIAccessibilityLayoutChangedNotification 通知。

有没有办法覆盖这个自动布局更改通知,以便我可以传入正确的焦点元素?

【问题讨论】:

  • 为什么不发布您自己的布局更改通知?

标签: ios uicollectionview voiceover uiaccessibility


【解决方案1】:

我找到了发生这种情况的原因。 一个元素随机聚焦的原因是因为我在 performBatchUpdate 的完成块中的 collectionview 上调用了 reloadData。 删除 reloadData 解决了这个问题。但是,因为我没有调用 reloadData,所以我必须在特定单元格上调用 reloadItemsAtIndexPaths,这对我来说很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2015-04-23
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多