테이블 뷰 셀에 다른 스타일과 색상으로 편집 할 수없는 텍스트를 표시해야합니다. 연구하면서, UIWebView는 내가 원하는 스타일/색상 유연성을 얻는 방법 인 것 같습니다. 여기에 내가 한 일이있다. (참고 : iOS 5, Xcode 4)UITableViewCell에서 UIWebView를 사용하여 동적 내용 표시
- UITableViewCell에서 파생 된 WebViewTableViewCell 클래스가 만들어졌다. 클래스에는 UIWebView가 포함되어 있습니다.
- 스토리 보드에서 UIWebView 개체가 포함 된 동적 셀 프로토 타입 1 개가있는 테이블보기 컨트롤러를 만들었습니다. 셀의 유형은 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
왜이 기능을 사용하지 않았습니까? –