UITextView 可以从上到下呈现吗?

Posted

技术标签:

【中文标题】UITextView 可以从上到下呈现吗?【英文标题】:Can a UITextView render top to bottom? 【发布时间】:2012-09-12 03:29:13 【问题描述】:

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

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

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

【问题讨论】:

有帮助吗? ***.com/questions/4905500/… @bryanmac 查看我对下面答案的评论 我很惊讶似乎没有任何关于此的现有信息,即使对于 OS X 也是如此。可以选择带有适当 CSS 的 UIWebView 吗?搜索 uiwebview tategaki 具有暗示性,甚至会在 SO 上找到一些信息。 @JoshCaswell 最终可能就是这样……但我真的很鄙视使用 UIWebView,因为那时我的所有交互都必须使用 javascript(需要突出显示系统、备忘录等)。目前正在研究基于 PDF 的解决方案。 【参考方案1】:

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

所以,我使用核心文本构建了自己的核心文本,它在很大程度上基于“SimpleTextInput”。此视图的关键是将YES 添加到kCTVerticalFormsAttributeName 键。幸运的是,选择逻辑已经存在于项目中,只是没有被使用。我可以通过在平移手势中调用适当的方法轻松地添加它(有一些猴子业务 CTFrameGetLineOrigins 覆盖了它的一些相邻内存,但幸运的是我能够解决它)。

【讨论】:

【参考方案2】:

到目前为止,似乎还没有你想要的那种风格的自定义视图。 如果我是你,我会把日文的排版转换成传统的日文写作风格。(也许这不是一个好主意,但有可能)

可能文本字符串是“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”。

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

【讨论】:

我需要能够选择视图中的文本,以便用户可以在字典中搜索某个突出显示的单词。除非选择跟随文本,否则这是不可能的。 这真是个问题。正如你所说,可能会创建 PDF 文件【参考方案3】:

从右到左

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

【讨论】:

可能我不是很清楚,但是文字是从上到下,换行是从右到左。 这根本不能回答问题。这只是应用 Unicode RTL 标记。字符应该从上到下移动。 我看到了original version of the question。它解释说,文本需要从上到下排列,然后从左到右排列。 borrrden 唯一改变的是示例。问题是一样的。你的回答没有解决。【参考方案4】:

你可以试试这个——

- (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];

【讨论】:

如何从上到下和从右到左渲染文本?【参考方案5】:

如果你只想移动文字,试试

[textViewTest setContentInset:UIEdgeInsetsMake(, , , )];

正数将框架移向中间,负数将框架从中间移出。

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

【讨论】:

我不只是想移动文本...我希望文本的布局与正常情况完全不同。查看问题中的图表,单词从右上角开始,然后向下移动,下一行从第一行的左上角重新开始,依此类推。

以上是关于UITextView 可以从上到下呈现吗?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7导航栏barTintColor - 能够让它从上到下淡化吗?

悬停时从上到下动画图像[关闭]

从上到下 <ul> 元素排列

C语言中总是从main函数开始执行,那执行好main函数后,是按照从上到下的顺序执行吗

iOS 加载模式视图从上到下

如何从上到下创建 UINavigationController 动画 [重复]