gpt4 book ai didi

iphone - VoiceOver 读取 iPhone 应用程序中上一个 View 的标签?漏洞?

转载 作者:可可西里 更新时间:2023-11-01 03:37:36 25 4
gpt4 key购买 nike

我正在创建基于 View 的应用程序,我将通过 addSubview 方法转到下一个 View 。问题是,当我打开 VoiceOver 的功能并添加 subview 时,它会从以前的 View 中获取附件标签。也就是说,如果我在矩形上单击 View ,在上一个 View 中有标签,那么 VoiceOver 也会将其检测为可访问性标签并开始阅读该标签。但是,如果我使用导航 Controller 转到下一个 View Controller ,我不会遇到任何问题。任何人都可以告诉我,如果苹果本身只支持基于导航的应用程序的 VoiceOver 功能,或者在基于 View 的应用程序中有其他解决方案可以用于 VoiceOver 吗?

PS 我也在一些演示应用程序上尝试过相同的方法,但结果相同。

因此,当我在当前 View 中添加一个包含按钮的 subview 时,辅助功能也会读取 subview 后面的标签。我希望可访问性可以读取添加 View 上的按钮,并且只需要前一个 View 的其余可视部分(而不是隐藏在添加 View 后面的标签)。有人可以告诉我,如果这是 iPhone 中的画外音错误,默认情况下,它还会在 addsubview 上读取 parentView 的标签吗?

最佳答案

如果一个 View 位于 View 层次结构中,即使它被其上的另一个 View 遮挡,VoiceOver 也会检测到。

您不应该通过在前一个 View 之上添加一个新 View 来移动到另一个内容屏幕。您应用的每个屏幕都应该是一个 UIViewController,而不仅仅是一个普通的 UIView。这为您提供了许多优势,其中之一是 View Controller 可以在屏幕外且出现内存警告时自动卸载其 View 。

要管理应用中屏幕之间的转换,您应该使用容器 Controller ,例如导航 Controller (或您自己的自定义 Controller )。如果你愿意,你可以禁用导航栏和过渡效果,只用它来管理你的 View 堆栈。当您将一个新的 View Controller 插入堆栈时,前一个 View Controller 将被删除,您的问题就会消失。

因此,您应该认真地重新考虑您管理屏幕和 View 的方式。 UIViewController 在某种容器内是可行的方法。至少,在向屏幕添加新 View 时应该删除旧 View 。

关于iphone - VoiceOver 读取 iPhone 应用程序中上一个 View 的标签?漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9880915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com