Chr*_*les 20 iphone accessibility uiview ios voiceover
简介:我想复制UIAlertView的可访问性行为,其中背景视图仍然可见,但VoiceOver不与其交互.
细节:我已经为iPhone应用程序实现了辅助功能,但仍然存在一个问题.在某些情况下,我会在所有其他视图上显示一个大视图(部分透明,覆盖大部分原始视图),其中包含标签和关闭按钮.即基本上是自定义弹出/警报视图.问题是,VoiceOver继续显示它下面的视图/控件.
防止VoiceOver隐藏视图的一种方法是将整个自定义视图背景设置为可访问.但是,这并不是我们想要的,因为这个包含视图的用户不应真正与之交互,只有它的子视图(标签/按钮)应该.
Jay*_*ySH 18
我认为你应该在你的顶层视图上使用它:
Objective-C的
- (BOOL)accessibilityViewIsModal {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
迅速
accessibilityViewIsModal = true
Run Code Online (Sandbox Code Playgroud)
这使隐藏的View Controller的每个元素都无法访问.
实现可以是true
在显示视图时将其设置为false
当您关闭该视图时将其设置为.
注意:需要iOS5及更高版本
斯威夫特 4
迅速试试这个:在你的视图出现之前,像这样设置你的 viewController 的视图:
yourViewController.view.accessibilityViewIsModal = true
Run Code Online (Sandbox Code Playgroud)
还尝试在 viewWillAppear 中将 self.view.accessibilityViewIsModal 设置为 true
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
view.accessibilityViewIsModal = true
}
Run Code Online (Sandbox Code Playgroud)
如果您在模态或弹出视图出现时发送屏幕机会通知,也可能会有所帮助,方法是将其添加到 viewWillAppear 中:
UIAccessibility.post(notification: .screenChanged, argument: nil)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4358 次 |
最近记录: |