vip*_*psk 6 iphone accessibility ios voiceover
我正在创建基于视图的应用程序,我将通过addSubview方法进入下一个视图.问题是,当我打开VoiceOver的功能并添加子视图时,它会从之前的视图中获取附件标签.也就是说,如果我点击矩形中的视图,前一个视图中有标签,那么VoiceOver也会将其检测为辅助功能标签并开始读取该标签.但是,如果我使用导航控制器去下一个视图控制器,我没有遇到任何问题.任何人都可以告诉我,如果苹果本身仅支持基于导航的应用程序的VoiceOver工具,或者在基于视图的应用程序中还有其他一些VoiceOver解决方案吗?
PS我也在一些演示应用程序上尝试过相同的结果.
因此,在当前视图中,我添加了一个包含按钮的子视图,辅助功能也会读取子视图后面的标签.我希望辅助功能可以读取添加视图上的按钮,以及前一个视图的其余可视部分(而不是标签隐藏在添加的视图后面).有人可以告诉,如果它是iPhone中的配音错误,默认情况下,它还会在addsubview上读取parentView的标签吗?
如果视图位于视图层次结构中,即使它被其上的另一个视图遮挡,VoiceOver也会检测到该视图.
您不应仅通过在上一个视图之上添加新视图来移动到另一个内容屏幕.您的应用的每个屏幕应该是一个UIViewController,而不仅仅是一个平原UIView.这为您提供了许多优势,其中之一是视图控制器可以在屏幕外自动卸载视图并且存在内存警告.
要管理应用程序中屏幕之间的转换,您应该使用容器控制器,如导航控制器(或您自己的自定义控制器).如果愿意,您可以禁用导航栏和过渡效果,并使用它来管理您的视图堆栈.当您将新视图控制器推入堆栈时,前一个视图控制器将被删除,您的问题就会消失.
因此,您应该认真重新考虑管理屏幕和视图的方式.UIViewController在某种容器里面是要走的路.至少,您应该在向屏幕添加新视图时删除旧视图.
小智 5
您可以将视图的 accessibilityViewIsModal 属性设置为 YES。
@property (nonatomic) BOOL accessibilityViewIsModal NS_AVAILABLE_IOS(5_0);
通知接收视图是否应被可访问性视为模态。如果是,则此视图之外的元素将被忽略。只有这个视图中的元素才会被暴露。默认==否
因此,无论您添加什么视图,都将它的 accessibilityViewIsModal 设置为 YES / true。
view.accessibilityViewIsModal = YES
使用此屏幕更改通知
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil);
Run Code Online (Sandbox Code Playgroud)
如果您需要聚焦特定的对象/视图,则将它们传递到 nil 的位置。
| 归档时间: |
|
| 查看次数: |
2728 次 |
| 最近记录: |