2014-07-06 59 views
4

我有一個HTML字符串數組,其中一些與照片,其中一些長,一些簡短,一些與鏈接 - 他們都是不同的。動態UITableViewCell與UIWebView

現在我有一個UITableView,我想要在表格中顯示這些HTML字符串,每個單元格中的每個字符串都是索引。我的問題是我不知道每個單元格的高度,我需要通過每個HTML字符串的高度來計算高度,但我只能在加載UIWebView後才知道它。

我需要一個好的解決方案的建議,這個問題看起來不錯。我已經嘗試使用UIWebViewDelegate在將HTML字符串加載到WebView後更改單元格框架,但它看起來很糟糕..並且完全混淆了表格視圖。

在此先感謝。

+0

你可以參考這個答案 HTTP:/ /stackoverflow.com/questions/18746929/using-auto-layout-in-uitableview-for-dynamic-cell-layouts-variable-row-heights – pqteru

回答

1

添加單元格時使用動畫。

添加在您的UITableView數據源)的細胞一個一個(1個indexPath一次),這樣做:

[self.tableView beginUpdates]; 
    [self.tableView insertRowsAtIndexPaths:@[indexPath] 
          withRowAnimation:UITableViewRowAnimationFade]; 
          // or UITableViewRowAnimationNone 
    [self.tableView endUpdates]; 

UITableView將與動畫慢慢成長爲數據變得可用。

如果您需要調整的現有細胞,將其刪除,並立即重新插入,全都在單一beginUpdates/endUpdates序列:

[self.tableView beginUpdates]; 
    [self.tableView deleteRowsAtIndexPaths:@[indexPath] 
          withRowAnimation:UITableViewRowAnimationFade]; 
    [self.tableView insertRowsAtIndexPaths:@[indexPath] 
          withRowAnimation:UITableViewRowAnimationFade]; 
    [self.tableView endUpdates]; 
+0

我接受你的答案,同時理解這個問題沒有「順利」的解決方案。無法在'UITableViewCell'中添加'UIWebView',該工作將會流暢而乾淨。 –

+1

不要放棄!如果「UITableViewCell」的大小在事實發生變化之後發生變化(*表示您開始時的圖像高度爲10,現在需要20 *),則實際上可以使用上述方法:**(1)** beginUpdates凍結UI **(2)**刪除並重新插入您正在調整大小的行('-deleteRowsAtIndexPaths:withRowAnimation:'+'-insertRowsAtIndexPaths:withRowAnimation:')**(3)** endUpdates釋放UI。這將是平穩的。 – SwiftArchitect

+0

是的,我以前使用過它,我可以重新加載我想要的單元格。但對我來說這並不好,因爲我希望桌子能夠順利加載,而且這很麻煩......不過謝謝!我沒有1-3個單元格,我有50-60個單元格...... –