如何在 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 添加可访问性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中为以下观察删除 GeoFire 句柄?

如何在 Swift 中为 UIBarButtonItem 设置动作

如何在 Swift 中为 UIImage 着色?

为啥自定义 UIRefreshControl 类的背景颜色在 Swift 中没有改变?

如何在 Swift 中为 NSLayoutConstraint 设置动画?

如何在 swift 中为 iOS 全局添加 HTTP 标头