【发布时间】:2015-06-04 18:52:36
【问题描述】:
我正在开发一个需要视图控制器才能在其中显示大量希伯来语(非英语)文本的应用程序。
文本是来自富文本文件的 AttributedString
我需要视图执行 4 件事。
平滑滚动
获取单词的范围,以便我可以自动滚动到它(如
scrollRangeToVisible)换字体流畅(我想用UISlider换字体)
快速加载
在某种意义上,我正在寻找电子阅读器的功能,我只需要一列,我希望它滚动而不是页面。
我已经尝试过的事情和利弊
Regular UITextView & Scrollview Classed as UITextView
优点:
- 轻松搜索和自动滚动
- 快速加载
- 字体切换流畅
缺点:
- 非常不稳定的滚动
滚动视图中的 UILabel
优点:
- 搜索和自动滚动并不容易,但易于管理
- 滚动非常流畅
缺点:
- 非常不稳定的字体切换
- 加载缓慢
我唯一没有尝试过(我能想到的)是CoreText
coreText 是要走的路吗?如果有办法让它更好地呈现大量希伯来语(非英语)文本,我宁愿使用 UITextView。
注意:我已经尝试在 UITextView 和 Selectable 上禁用编辑。
编辑 1
-(double)Height{
[layoutManager glyphRangeForTextContainer:textContainer];
NSLog(@"HEIGHT = %f",[layoutManager
usedRectForTextContainer:textContainer].size.height);
return [layoutManager
usedRectForTextContainer:textContainer].size.height;
}
【问题讨论】:
-
您是否确认是导致问题的希伯来文文本?尝试使用类似大小的英文富文本文档?
-
老实说,我什至从来没有想过它,但是是的,我确认了它的希伯来文文本。我尝试了Objective-C wikipedia Page,它滚动完美。
-
您是否只显示希伯来文文本?没有选择/编辑等?
-
是的,我不需要选择或编辑功能,但正如我在问题结尾处所述,我已经尝试关闭/禁用它们。
标签: objective-c uilabel uitextview core-text