UITextView可以从上到下渲染吗?

时间:2012-09-12 03:29:13

标签: objective-c ios uitextview

我的下一个项目需要显示从上到下和从右到左(日本传统写作风格)显示的日文文本。是否可以以这种方式设置UITextView布局文本?下面是以这种方式编写的一些文本的示例:

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

另外,我需要能够选择它(所以UILabel已经出局)。这会变成一个完全自定义的视图吗?

5 个答案:

答案 0 :(得分:2)

事实证明,答案是“不,不能。”

所以,我使用Core Text构建了自己的Core Text,它主要基于“SimpleTextInput”。此视图的关键是将YES添加到kCTVerticalFormsAttributeName密钥。幸运的是,选择逻辑已经在项目中,它只是没有被使用。我很容易通过在平移手势中调用适当的方法来添加它(有一些猴子业务CTFrameGetLineOrigins覆盖了一些相邻的内存但我很幸运能够解决它。)

答案 1 :(得分:0)

到目前为止,似乎没有您想要的样式自定义视图。 如果我是你,我会转换日文文本的排版以适应日本传统的写作风格。(也许,这不是一个好主意,但它是可能的)

也许文本字符串是“Y U Q M I E A Z V R N J F B W S O K G C X T P L H D”。

顺便说一下,你擅长算术编码吗?

答案 2 :(得分:-1)

从右到左

 uiTextView.text = [NSString stringWithFormat:@"\u202B%@",textString];

答案 3 :(得分:-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];
}

答案 4 :(得分:-1)

如果您只想移动文字,请尝试

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

如果正数将帧移向中间,则负数将其从中间移出。

例如,[textViewTest setContentInset:UIEdgeInsetsMake(-5,0,5,0)],将文本向上移动5个像素!