【问题标题】:How to add accessibility for UIRefreshControl in Swift如何在 Swift 中为 UIRefreshControl 添加可访问性
【发布时间】:2023-03-19 05:54:01
【问题描述】:

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

self.refreshControl.accessibilityLabel = "Refreshing"

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

我重写了accessibilityScroll方法如下。

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

任何想法谢谢!

【问题讨论】:

  • 您有关于用户如何在启用 VoiceOver 的情况下执行下拉刷新手势的任何信息吗?

标签: ios swift uirefreshcontrol uiaccessibility xcode9.2


【解决方案1】:

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

【讨论】:

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