iOS辅助功能——在flick上做一些事情



是否可以捕捉VoiceOver单指轻弹的辅助功能?我只想在用户看到特定元素后更新我的accessibilityElements数组。

背景:

在集合视图中,我手动将accessibilityElements数组设置为visibleCells(),然后单击视图的done按钮。不过,一旦用户达到done按钮,我希望用户有机会继续滚动(就像普通用户一样),但我不知道在用户到达done可访问性元素时,如何将新的visible cells推入accessibilityElements阵列。

代码:只是为了提供更多的上下文,这就是我正在做的:

    var accessibilityElements : [UIView] = myCollectionView.visibleCells()
    accessibilityElements.append(doneButton)
    view.accessibilityElements = accessibilityElements

这一切都发生在我的viewDidAppear方法中。在将可访问性刷到doneButton后,有没有办法在某个位置做同样的事情?

尝试的方法:

我试图使用UIAccessibilityFocus协议,但我试图检查焦点的视图是UIButton,我不想仅为了可访问性而将UIButton子类化以实现此方法。还有别的办法吗?

解决方案是使用accessibilityScroll方法,并在其中更改viewaccessibilityElements数组。

来自文档:

Scrolls screen content in an application-specific way and returns the success or failure of the action.
    func accessibilityScroll(_ direction: UIAccessibilityScrollDirection) -> Bool
Parameters
    direction   
         A constant that specifies the direction of the scrolling action. See UIAccessibilityScrollDirection for descriptions of valid constants.

链接到文档

因此,我基本上为我的集合视图覆盖了这个方法,并建议我的用户"三指滑动"以获得这种行为,这就是调用accessibilityScroll的原因。我总是返回true,并为在我的细胞上滑动做适当的动画。

PS。.Next.Previousdirection值对我来说从未发生过,我只得到了.Right.Left

最新更新