ios - 使用 VoiceOver 在 iOS 14 上禁用 UIImageView 的图像识别

标签 ios uiimageview voiceover

我有一个 UIImageView 作为 View 的背景。用户交互被禁用。 isAccessibilityElement 设置为 NO。当应用程序在设备上运行时,这是通过使用调试 View 层次结构来验证的。
然而,当我点击具有该背景的 View 时,它会描述其上的所有控件,然后使用自动图像识别来描述图像。我在网上找到的所有内容都说这是一个新的 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 是蓝天的图像。它没有使用 Assets 目录。当我在 iOS 13 中启用 VoiceOver 的情况下点击图像时,它会显示“我不是描述”。当我在 iOS 14.1 设备上点击它时,它会读到“我不是描述”,然后停顿半秒,说“图像”,然后继续描述它“蓝天,多云”。这是我终生无法弄清楚如何消除的最后一部分!

最佳答案

于是我找到了答案:imageView.accessibilityTraits = UIAccessibilityTraitNone;这告诉系统不要将其视为图像,因此它不会尝试识别它。

关于ios - 使用 VoiceOver 在 iOS 14 上禁用 UIImageView 的图像识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65922080/

相关文章:

swift - UIAccessibilityTrait可调不进入increment()或decrement() swift

ios - 通知画外音用户他们已突出显示容器中的元素

ios - 创建自定义 VoiceOver 转子以垂直导航 UICollectionView

iphone - UIScrollView ContentSize 未按预期运行

ios - publishSubject 同步异常警告

iphone - 如何将大图像变成小图像,并且质量与原始图像一样好?

ios - UIView 图像中的缩放效果

ios - 手势识别器阻止触摸已结束

ios - UILabel 上的 SizeToFit 和自动布局

ios - 如何在 iOS 中缩放 UIScrollview 内部 Imageview?