我需要在表格視圖單元格中顯示具有不同樣式和顏色的不可編輯文本。在研究中,似乎UIWebView是實現我想要的樣式/顏色靈活性的方法。這裏是我做的:(注意iOS 5,XCode 4)在UITableViewCell中使用UIWebView來顯示動態內容
- 創建一個從UITableViewCell派生的類WebViewTableViewCell。該類包含一個UIWebView。
- 在故事板中,我使用1個包含UIWebView對象的動態單元格原型創建了表視圖控制器。該單元格的類型爲WebViewTableViewCell。我在類UIWebView和故事板之間建立了連接。
- 在表格視圖控制器代碼,推翻「heightForRowAtIndexPath」和用於「sizeThatFits」動態調整單元高度
當運行,所有這些「作品」的,不同的是細胞不調整大小以適合網頁視圖中包含的所有文本。事實上,他們根本沒有調整大小;它們是故事板中繪製的高度。下面是一些示例代碼:
的cellForRowAtIndexPath:
UITableViewCell *cell = nil;
WebViewTableViewCell *webCell = (WebViewTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"cellid"];
// Now populate the cell with dynamic data
NSDictionary *thisData = [self.dynamicData objectAtIndex:indexPath.row];
NSString *myString= [NSString stringWithFormat:@"%@. %@",
[thisData objectForKey:@"key1"],
[thisData objectForKey:@"key2"]];
[webCell.webView loadHTMLString:myStringbaseURL:nil];
cell = webCell;
return cell;
heightForRowAtIndexPath:
WebViewTableViewCell *webCell = (WebViewTableViewCell *) [self tableView:a_tableView cellForRowAtIndexPath:indexPath];
// Now that we have the cell, let it determine what its height should be.
CGFloat rowHeight = 45; // default unless if a problem accessing the cell
if(webCell)
{
CGSize size = [webCell.webView sizeThatFits:CGSizeZero];
rowHeight = rowHeight < size.height ? size.height : rowHeight;
}
一兩件事 - 的細胞,但不正確的高度,是滾動的。我想讓他們固定的高度,而不是滾動。
有什麼想法?
--John
爲什麼會降低此選項? – 2012-01-07 20:26:55