首页 > 解决方案 > UIPageControl 画外音问题

问题描述

我的应用程序的入职流程中有一个 UIPageControl。其目的不是手动更改页面,而是指示用户在整个入职过程中的流程。(目前没有滑动手势)

一切看起来都很好,但 VoiceOver 允许用户增加或减少控件,并说它可以更改(它似乎保留.adjustable为特征)。我不想要那种行为。我只想让 VoiceOver 阅读“第 1 页,共 3 页”。我禁用了它,更改了它的可访问性特征并且它不影响 VoiceOver。

这是一些代码。

    /// hard coded values for the example:
    pageControl.numberOfPages = 3
    pageControl.currentPage = 1
    pageControl.isEnabled = false
    pageControl.isUserInteractionEnabled = false
    pageControl.accessibilityTraits = .none

在 github 上创建了一个测试项目以获得更完整的示例。

标签: iosaccessibilityuipagecontrolvoiceover

解决方案


达到目的的一种方法是子 UIpageControl化并覆盖accessibiliTraits属性,如下所示:

class MyPageControl: UIPageControl {

    override var accessibilityTraits: UIAccessibilityTraits {
        get{
            return .none
        }
        set{}
    }
}

定义您的 pageControl 元素MyPageControl以获得所需的结果。


推荐阅读