Šim*_*nin 7 accessibility uiscrollview ios voiceover uicollectionview
我有一个水平滚动的 UICollectionView,其上方有一个标题标签,下方有一个 UIPageControl。
UILabel
UICollectionView
UIPageControl
Run Code Online (Sandbox Code Playgroud)
当我打开 VoiceOver 辅助功能并开始按顺序遍历屏幕时,集合视图会自动滚动到开头或结尾。导致页面突然跳出。例如,如果我使用页面控件滚动到第二页,然后移回集合视图,它会意外显示并读取最后一页。由于我在辅助功能模式下使用页面控件进行导航,因此我想阻止自动滚动。
我该如何预防或应对这种情况?
我发现一个问题似乎描述了相同的问题,但没有解决方法建议:iOS 8.4: Scroll view Resets contentOffset with Voice Over启用视图出现后不久
我在 iOS 13.4.1 iPhone 11 Pro 上遇到过
触发自动滚动的辅助功能焦点的更改也会触发对scrollViewDidScroll(_:)UIScrollViewDelegate 的调用。使用它来抵消自动滚动效果,fi 通过设置contentOffset您喜欢的方式。
您可能需要检测滚动实际上是由辅助功能触发的,而不是用户拖动或捏合触发的。UIAccessibility.isVoiceOverRunning是UIAccessibilityFocus.accessibilityElementDidBecomeFocused()你的朋友吗?请注意,更改contentOffset(或zoomScale任何需要的内容)可能会触发对 的另一次调用scrollViewDidScroll(_:),因此您需要防止无限递归。
| 归档时间: |
|
| 查看次数: |
2928 次 |
| 最近记录: |