首页 > 解决方案 > Swift:可访问性:如何将要按顺序执行的事件排队?

问题描述

我想知道是否有一种方法可以将可访问性读数或元素焦点事件一个接一个地排队。

如果我使用: UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, "My Error Message")

或: UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,self.continueButton)

第二次调用将中断当前正在读取的读数。

显然,如果你使用带延迟的 Dispatch,它并不健壮,因为不同的语言有不同的内容长度,而且用户有不同的读取速度设置,可能设置为非常慢。那么我怎样才能“排队”多个焦点/读出事件并确保一次只读出其中一个事件呢?

标签: swiftaccessibility

解决方案


在您发布第一个公告后,您需要等待(在此处UIAccessibilityAnnouncementDidFinishNotification查看更多信息),然后才能发布第二个公告。

所以建立一个队列(一个集合可以做到),每当UIAccessibilityAnnouncementDidFinishNotification系统触发时,只需弹出集合中的第一个通知(如果存在)并将其触发。


推荐阅读