Swift:辅助功能:如何将要按顺序执行的事件排队?

时间:2018-06-25 19:43:11

标签: swift accessibility

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

如果我使用以下任何一个:UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,“我的错误消息”)

或: UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,self.continueButton)

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

很明显,如果您使用带延迟的分派,则它并不健壮,因为不同的语言具有不同的内容长度,并且用户具有不同的读出速度设置,该速度可能设置得非常慢。那么,如何才能“排队”多个焦点/读出事件,并确保一次只读出其中之一?

1 个答案:

答案 0 :(得分:1)

发布第一个公告后,您需要等待UIAccessibilityAnnouncementDidFinishNotification(请参阅更多here),然后发布第二个公告。

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