Мне нужно отобразить не редактируемый текст с разными стилями и цветами в ячейках таблицы. При исследовании, похоже, что UIWebView - это способ достижения гибкости стиля/цвета, который я хочу. Вот что я сделал: (примечание iOS 5, XCode 4)Использование UIWebView в UITableViewCell для отображения динамического содержимого
- Создал класс WebViewTableViewCell, полученный из UITableViewCell. Класс содержит 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
Почему это было приостановлено? –