2016-03-08 73 views
0

我想呈現HTML標籤中包含圖像和超鏈接的帖子,但我無法讓它們在UITableViewCell中理想地工作,並且我搜索了Google周圍並嘗試了兩種現有解決方案;iOS使用超鏈接和圖像呈現HTML標記

第一個是使用UIWebView來顯示我嘗試過的HTML標籤,但它不會根據內容的大小自行調整大小,並且似乎具有固定大小。 (這意味着我不想水平和垂直滾動,它應該與UILabel具有相同的行爲,除了它包含圖像和超鏈接)。它沒有本地行爲,並佔用大量內存。

我嘗試的第二個方法是使用UITextView來使用NSAttributedStringsNSHTMLTextDocumentType來呈現HTML標記,但是HTML中的所有鏈接都消失了,這讓事情變得很困難。

HTML text

+0

所有鏈接「消失」?那個怎麼樣?你有沒有工作的HTML文本的例子和你的代碼來渲染它? – Larme

+0

它們消失了,因爲它們在被「NSHTMLTextDocumentType」解析後不會顯示出來。我添加了以前使用的示例HTML文本文檔。解析HTML的代碼庫來自http://stackoverflow.com/questions/25879837/how-to-display-html-formatted-text-in-ios-label – Wraithseeker

回答

1

您可以使用一個UIWebView並調整其大小根據你的內容的大小的web視圖的高度。 1.將webView的委託 2.設置ID爲「容器」一個div裏面的html進行測量

override func viewDidLoad() { 
    super.viewDidLoad() 
    webView.delegate = self 
    webView.loadHTMLString("<html><body><div id='container'>Put your content inside this div to ve measured</div></body></html>", baseURL: nil) 
} 

func webViewDidFinishLoad(webView: UIWebView) { 
    var js = self.webView.stringByEvaluatingJavaScriptFromString("document.getElementById(\"container\").offsetHeight;")! 
    if js == ""{ js = "0" } 
    let height = CGFloat(js) 
    // now resize your height with this value, modify the frame or the constrains according to your design 
}