菜鸟教程小白 发表于 2022-12-13 06:22:12

ios - 加载 View Controller 后的画外音顺序


                                            <p><p>我有这样的要求。</p>

<p>我的 ViewController 正在从远程休息服务加载数据,并且数据显示在表格中。在加载过程开始之前,我需要配音说</p>

<p>“正在加载建筑物。请稍候”</p>

<p>加载数据成功后我需要画外音说</p>

<p>“建筑物已加载”</p>

<p>在这之后我需要说出我的 ViewController 中的标题是什么</p>

<p>“选择一座建筑”。</p>

<p>顺序很重要。现在画外音在加载 Controller 后开始读取 Controller 标题中的内容。当我的建筑物数据加载开始时,“选择建筑物”标题消息被中断,“正在加载建筑物。请稍候”开始。盲人需要以正​​确的顺序被告知这个状态,所以在加载数据后我需要说“选择一座建筑物”。</p>

<p>我需要控制语音消息的顺序。我需要控制何时说出 controller.title 内容或从画外音中禁用 controller.title。 </p>

<p>通知画外音说出我正在使用这段代码的内容:</p>

<pre><code>UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, @&#34;Buildings loaded&#34;);
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>UIAccessibilityScreenChangedNotification</code> 有问题。这应该做你想做的事。 </p>

<p>替代方案如下:</p>

<pre><code>UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @&#34;Buildings loaded&#34;);
</code></pre>

<p>但是,这也是错误的,是的,苹果!获得所需行为的唯一选择是劫持屏幕更改通知,因为它是 iOS 8.2 中唯一没有错误的通知。</p>

<pre><code>UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, @&#34;Say these words please&#34;);
</code></pre>

<p>这在 VoiceOver 中提供了额外的小哔哔声,但这并不可怕。所以,这对你有用,但是,从 A11y 的角度来看,我建议的解决方案如下:</p>

<p>当你加载你的 ViewController 时,请稍候对话出现,将焦点移到它上面。据推测,这实际上是 Modal(这意味着在完成此操作之前,您无法与应用程序的其余部分进行交互)。如果您提供一个 UIElement,而不是提供一个要宣布的字符串,那么焦点将转移到该元素上,并且它会被读出。</p>

<pre><code>UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, _PleaseWaitLabel);
</code></pre>

<p>然后,加载完成后,执行以下操作:</p>

<pre><code>UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, _ChooseABuildingHeading);
</code></pre>

<p>完全跳过“建筑物已加载”的通知,没有必要,只要您的等待通知是模态的,然后您将注意力转移到正确的标题上,发生的事情就会很明显。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 加载 ViewController 后的画外音顺序,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29537975/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29537975/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 加载 View Controller 后的画外音顺序