我本质上是在制作一个提词器应用程序,我需要一个 UITextView 来从右到左显示每一行。
NSString *textString = @"Hello There\nMy name is Mark";
textView.text = [@"\u202B" stringByAppendingString: textString];
这是行不通的。我需要这个来阅读
“erehT olleH” “kram si eman yM”
我知道我还需要颠倒的字体等。我需要先修复这部分。谢谢。
我本质上是在制作一个提词器应用程序,我需要一个 UITextView 来从右到左显示每一行。
NSString *textString = @"Hello There\nMy name is Mark";
textView.text = [@"\u202B" stringByAppendingString: textString];
这是行不通的。我需要这个来阅读
“erehT olleH” “kram si eman yM”
我知道我还需要颠倒的字体等。我需要先修复这部分。谢谢。
该符号\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(”。但通常,不涉及镜像;字母保持不变,它们只是从右到左运行。
如果您真的想对文本进行镜像,则需要完全不同的东西(转换)。
这是反转字符串的逻辑...我希望这可以帮助您...只需将此字符串附加到您的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);