1

我本质上是在制作一个提词器应用程序,我需要一个 UITextView 来从右到左显示每一行。

NSString *textString = @"Hello There\nMy name is Mark";
textView.text = [@"\u202B" stringByAppendingString: textString];

这是行不通的。我需要这个来阅读

“erehT olleH” “kram si eman yM”

我知道我还需要颠倒的字体等。我需要先修复这部分。谢谢。

4

2 回答 2

1

该符号\u202b表示Unicode字符U+202B是RIGHT-TO-LEFT EMBEDDING,不影响方向性强的字符的书写方向,如拉丁字母。

字符 U+202E RIGHT-TO-LEFT OVERRIDE ( \u202e) 强制从右到左书写方向,覆盖字符的固有方向性。要结束其效果,请使用 U+202C POP DIRECTIONAL FORMATTING 字符:

'\u202eHello There\nMy name is Mark \u202c'

这与字体关系不大。渲染引擎应该使用镜像符号来处理像“(”这样的字符,例如,以便“(foo)”在从右到左的书写中被渲染为“(oof)”而不是“)oof(”。但通常,不涉及镜像;字母保持不变,它们只是从右到左运行。

如果您真的想对文本进行镜像,则需要完全不同的东西(转换)。

于 2012-10-06T04:50:10.970 回答
0

这是反转字符串的逻辑...我希望这可以帮助您...只需将此字符串附加到您的textView.text

 NSString *sampleString = @"Hello this is sample \n Hello there";
    NSMutableString *reverseString = [NSMutableString string];
    NSInteger index = [sampleString length];
    while (index > 0) 
    {
        index--;
        NSRange subStrRange = NSMakeRange(index, 1);
        [reverseString appendString:[sampleString substringWithRange:subStrRange]];
    }
    NSLog(@"%@", reverseString);
于 2012-10-06T04:06:32.327 回答