如何在 Swift 中为 UIRefreshControl 添加可访问性

Posted

技术标签:

【中文标题】如何在 Swift 中为 UIRefreshControl 添加可访问性【英文标题】:How to add accessibility for UIRefreshControl in Swift 【发布时间】:2018-07-25 15:28:28 【问题描述】:

我正在尝试添加 UIRefreshControl 的可访问性,它已在 UITableView 中实现拉刷新,如下所示

self.refreshControl.accessibilityLabel = "Refreshing"

但是,如果打开可访问性并通过在 UITableview 上滑动三指,则不会说是刷新。

我重写了accessibilityScroll方法如下。

override func accessibilityScroll(_ direction: UIAccessibilityScrollDirection) -> Bool 
    if direction == .up 
        self.refreshControl.accessibilityLabel = "Refreshing"
    
    return true

任何想法谢谢!

【问题讨论】:

您有关于用户如何在启用 VoiceOver 的情况下执行下拉刷新手势的任何信息吗? 【参考方案1】:

首先,刷新不仅仅是向上滚动。它向上滚动超过 y 位置 0。否则,只要用户向上滚动,就会发生这种情况。其次,使用 UIAccessibilityPostNotification 向用户宣布 UI 元素刚刚更改。

【讨论】:

UIAccessibility.post(通知:UIAccessibility.Notification.announcement,参数:self.refreshControl?.attributedTitle?.string)

以上是关于如何在 Swift 中为 UIRefreshControl 添加可访问性的主要内容,如果未能解决你的问题,请参考以下文章