在UI元素上以编程方式调用iOS辅助功能语音

时间:2014-02-04 13:37:20

标签: ios xcode voiceover

当我的用户按下带有无效文字的按钮时,我会显示一个UILabel(之前隐藏),其中包含“输入的值无效”文字。

我希望配音能够自动读出此标签。我该怎么做?

3 个答案:

答案 0 :(得分:9)

如果您想向Voice Over提供一些重要信息,那么您应发布“辅助功能公告”:

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, // announce
                                @"My important information");  // actual text

答案 1 :(得分:0)

你想做这样的事情:

    AVSpeechSynthesizer* speechSynth;
    AVSpeechUtterance *utterance;

    speechSynth = [[AVSpeechSynthesizer alloc] init];
    speechSynth.delegate = self;

    utterance = [AVSpeechUtterance speechUtteranceWithString:@"Hello, world!"];
    [speechSynth speakUtterance:utterance];

注意:这只是iOS7

答案 2 :(得分:0)

雨燕5

UIAccessibility.post(notification: .announcement, argument: "your text")

似乎没有队列(仍然在iOS 13上)。如果在用户操作(例如单击按钮)后立即发布公告,则该按钮可能会被按钮的自动旁白公告所吞没。在这种情况下,您应该在适当的延迟后发布公告(如here所述)。如果延迟时间太短,则您的公告可能会切入按钮的公告。

AVSpeechUtterance将向所有用户讲文本,UIAccessibility.post仅对在辅助功能设置f.i中选择了画外音的用户讲话。因为他们有视觉障碍。