2013-12-16 140 views
4

我对新手无障碍功能很陌生。在我的应用程序的问题是,一些特殊字符( - )没有被正确地应用例如特殊字符的辅助功能iOS

-0.7拼写为7

+0

这只是在一个UILabel文本或者你设置明确的accessibilityLabel自己吗? –

+0

我已将启用辅助功能的复选框设置为yes,来自xib.The值来自web服务,因为-0.7 – user2814546

回答

6

你可以用一个数字格式化和“拼出”说话风格为这些字符串创建更适合的accessibilityLabel。然后,VoiceOver会为该标签读取此字符串,但它在某处的UI中不可见。

NSNumber *number = @(-0.7); 
NSNumberFormatter *formatter = [NSNumberFormatter new]; 
formatter.numberStyle = NSNumberFormatterSpellOutStyle; 
formatter.locale = [NSLocale currentLocale]; 

NSString *spelledOutNumber = [formatter stringFromNumber:number]; 

// set that as the accessibility label to be read instead of the number 
yourLabel.accessibilityLabel = spelledOutNumber; 

这也会给你以及与不同的区域设置(下面的一些示例输出)有效的解决方案:

en_US -> minus zero point seven 
de_DE -> minus null Komma sieben 
fr_FR -> moins zéro virgule sept 
ja_JP -> マイナス〇・七 
es_ES -> menos cero coma siete 
ru_RU -> минус ноль запятая семь 
sv_SE -> minus noll komma sju 
+0

对我无效...... still -.7拼写为7 – user2814546

+0

@ user2814546是来自Web服务a串?如果你输入一个断点,你的格式化的spelledOutNumber是什么?您如何验证VoiceOver读取的内容(在我希望的真实设备上)? –

+0

带格式拼写输出的数字是正确的20.25(二十二点五五),但在真实设备上它的讲话两个零二五五 – user2814546