如何解决使用 VoiceOver 在 iOS 14 上禁用 UIImageView 的图像识别
我有一个 UIImageView 作为视图的背景。用户交互被禁用。 isAccessibilityElement 设置为 NO。当应用在设备上运行时,这是通过使用调试视图层次结构来验证的。
然而,当我点击作为背景的视图时,它会描述其上的所有控件,然后使用自动图像识别来描述图像。我在网上找到的所有内容都说这是 iOS 14 的一项新功能,它很棒,但没有说明如何关闭它。
我什至尝试将自己的描述字符串设置为至少尝试覆盖图像识别,但无济于事。那么 - 有没有办法为特定的 UIImageView(甚至整个应用程序)关闭它,如果是,如何关闭?
***更新****
所以我已经确认这是特定于 iOS 14 的。我在 viewDidLoad
中有以下代码:
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blueSky.jpg"]];
imageView.isAccessibilityElement = YES;
imageView.accessibilityLabel = @"I am not a description";
CGPoint origin = imageView.frame.origin;
origin.y = 50;
origin.x = 50;
CGRect imageFrame = imageView.frame;
imageFrame.origin = origin;
imageView.frame = imageFrame;
self.view.isAccessibilityElement = NO;
[self.view addSubview:imageView];
blueSky 是蓝天的图像。它没有使用资产目录。当我在 iOS 13 中启用 VoiceOver 的情况下点击图像时,它会显示“我不是描述”。当我在 iOS 14.1 设备上点击它时,它会读到“我不是描述”,然后停顿半秒,说“图像”,然后继续描述它“蓝天,多云”。这是我一生都无法弄清楚如何消除的最后一部分!
解决方法
所以我找到了答案:
imageView.accessibilityTraits = UIAccessibilityTraitNone;
这告诉系统不要将其视为图像,因此不会尝试识别它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。