2009-09-17 132 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