2009-09-17 96 views
5

我想知道如果UITextView可以显示富文本?我想对我的只读文本进行简单的格式设置(如文本不同部分的不同对齐方式)。如果不是,我应该使用什么样的观点?UITextView富文本?

回答

2

通常,最好的方法是使用UIWebView并加载本地内容,您可以在其中插入标签和其他任何您需要的内容。本地加载应该是快速的,你可以设计它看起来像任何uitextview

另一种选择是使用UILabel子类,而不是获得Three20开放源代码。你想要TTStyledTextLabel

+0

我可以随时生成html并将其加载到视图中吗? –

+0

是的,你可以生成它并随时加载它,你只需要编写将生成html字符串的代码 – coneybeare

2

下面是一个试图做到这一点的任何人的代码片段 - 使用uiwebview来处理样式文本 - 让您的本地js文件工作可以欺骗。进入构建阶段 - >编译源代码 - >,并添加你想要访问的js文件在你的html内容中。您也可以将字符串评估为来自您的webview上的目标c的javascript。

NSString *someHtmlContent = [NSString stringWithFormat:@"<html><head><style type=\"text/css\">body {padding: 0px; margin: 0px; }</style><script src=\"yourLocalJsFile.js\"></script></head><body></body></html>", dynamicText]; 

NSLog(@"HTML with code: \n%@", someHtmlContent); 

NSString *resourcePath = [[[[NSBundle mainBundle] resourcePath] 
           stringByReplacingOccurrencesOfString:@"/" withString:@"//"] 
           stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; 

[MyWebView loadHTMLString:someHtmlContent baseURL:[NSURL URLWithString: 
              [NSString stringWithFormat:@"file:/%@//", resourcePath]]]; 

[self.MyWebView setDelegate:self]; 

设置代理让你决定如何处理链接的 - 做你想让他们在移动Safari浏览器或在您的WebView

1

你可以看一下在GitHub上EGOTextView项目打开。它discribes本身作为一个

“的替代产品的UITextView一个完整的下降,增加了对 富文本编辑的支持。”

+0

链接是https://github.com/enormego/EGOTextView – Andy