1

私は本質的にテレプロンプター アプリを作成しています。すべての行を右から左に表示するには UITextView が必要です。

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

これは機能していません。私はこれを読む必要があります

" erehT olleH" " kram sieman 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 に答える