7

私の次のプロジェクトでは、上から下、右から左に表示される日本語のテキストを表示する必要があります(従来の日本語の書き方)。UITextViewこの方法でテキストをレイアウトするように設定することは可能ですか?以下は、このように書かれたテキストの例です。

 W H
 O E
 R L
 L L
 D O
 ! ,

また、私はそれを選択できる必要があります(そうUILabelです)。これは完全にカスタムビューになりますか?

4

5 に答える 5

2

結局のところ、答えは「できません」です。

そこで、「 SimpleTextInput 」に大きく基づいたCoreTextを使用して独自のテキストを作成しました。このビューの鍵はYES、鍵に追加することkCTVerticalFormsAttributeNameです。幸いなことに、選択ロジックはプロジェクトにすでに存在し、使用されていないだけです。パンジェスチャ内で適切なメソッドを呼び出すことで簡単に追加できました(CTFrameGetLineOrigins隣接するメモリの一部を上書きするサルのビジネスがありましたが、幸運にもそれを解決できました)。

于 2012-09-24T05:35:02.050 に答える
0

今のところ、あなたが望むようなスタイルのカスタムビューはないようです。もし私があなたなら、日本語のテキストの植字を伝統的な日本語の書き方に合わせるように変換します(おそらく、それは良い考えではありませんが、可能です)

テキスト文字列は「YUQMIEAZVRNJFBWSOKGCXTPLHD」である可能性があります。

ところで、あなたは算術符号化が得意ですか?

于 2012-09-12T08:17:41.557 に答える
-1

あなたはこれを試すことができます-

- (void)loadView {
[super loadView];

CGRect frame = CGRectZero;
frame.size = self.view.frame.size;

UITextView* tv = [[UITextView alloc] initWithFrame:frame];
[self.view addSubview:tv];

tv.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

tv.text = [_value description];

tv.editable = NO;
tv.dataDetectorTypes = UIDataDetectorTypeAll;

// default font size is too small
tv.font = [UIFont systemFontOfSize:[UIFont labelFontSize]];

[tv release];
}
于 2012-09-12T05:54:01.100 に答える
-1

右から左へ

 uiTextView.text = [NSString stringWithFormat:@"\u202B%@",textString];
于 2012-09-12T04:55:08.100 に答える
-1

テキストだけを移動したい場合は、試してみてください

[textViewTest setContentInset:UIEdgeInsetsMake(<#CGFloat top#>、<#CGFloat left#>、<#CGFloat bottom#>、<#CGFloat right#>)];

正の数はフレームを中央に向かって移動し、負の数はフレームを中央から移動します。

たとえば、[textViewTest setContentInset:UIEdgeInsetsMake(-5、0、5,0)]は、テキストを5ピクセル上に移動します。

于 2012-09-12T11:14:09.560 に答える