小编Ahm*_*mad的帖子

使用 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];
Run Code Online (Sandbox Code Playgroud)

blueSky 是蓝天的图像。它不使用资产目录。当我在 iOS 13 中启用 VoiceOver 的情况下点击图像时,它会显示“我不是描述”。当我在 iOS 14.1 设备上点击它时,它会显示“我不是描述”,然后停顿半秒,说“图像”,然后继续描述它“蓝天,多云”。这是我一生都无法弄清楚如何消除的最后一部分!

uiimageview ios voiceover

6
推荐指数
1
解决办法
1837
查看次数

将带有重音字符的NSString转换为CString

我有一个值为Jose的NSString(e上的重音).我尝试将其转换为C字符串,如下所示:

char str [[myAccentStr length] + 1];
[myAccentStr getCString:str maxLength:[myAccentStr length] + 1 encoding:NSUTF32StringEncoding];
Run Code Online (Sandbox Code Playgroud)

但str最终成为一个空字符串.是什么赋予了?我也尝试过UTF8和UTF16.它稍后会被传递给另一个函数,当该函数调用lstrlen时,它的大小为零.

encoding nsstring ios

5
推荐指数
1
解决办法
5442
查看次数

正在下载PersistentConnectionLogging.zip

有谁知道我可以在哪里下载这个配置文件,以便我可以把它放在我的设备上进行推送调试?所有互联网和stackoverflow链接指向此处:

https://developer.apple.com/library/ios/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG6

但是在那里下载它的链接没有活动,并且在该页面上的任何地方都没有任何注释表示"替换为......"或"执行此操作......"或其他任何内容.是什么赋予了?

apple-push-notifications ios

3
推荐指数
1
解决办法
846
查看次数