Вопрос

я не уверен, что это хороший путь... у меня есть некоторые данные, которые я получаю из Интернета, которые, в свою очередь, заполняют табличное представление.Проблема в том, что текст представляет собой HTML (теги p и т. д.).Моей первой мыслью было создать в ячейке uiwebview и заполнить ее с помощью loadHTMLString.Факт в том, что это КРАЙНЕ работает.Но тогда клетка больше не была получателем прикосновений.

Итак, прежде чем мы углубимся в код, есть ли лучший способ заполнить ячейки, чем использование UIWebView.Это похоже на хак, и я боюсь, что даже если это сработает, Apple откажется от него.

//из моего пользовательского класса UITableViewCell:

- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
    [self setFrame:frame];

    webcell = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,frame.size.width-20,frame.size.height)];
    [self.contentView addSubview:webcell];

    //bloack the webview from touches
    UIView *cover = [[UIView alloc] initWithFrame:webcell.frame];
    [self.contentView addSubview:cover];
    [cover release];
}
return self;

}

-(void) setlabeldata: (feeditem *) feeditem {link = feeditem.link;

NSMutableString *htmlstring = [NSMutableString string];
[htmlstring appendString:@"<html><head><link rel='stylesheet' href='style.css'/></head><body>"];
[htmlstring appendFormat:@"<p>%@</p>",feedItem.title];
[htmlstring appendFormat:@"<p>%@</p>",feedItem.description];
[htmlstring appendString:@"</body></html>"];
[webcell loadHTMLString:htmlstring baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]bundlePath]]];

}

Спасибо

Это было полезно?

Решение

если у кого-то нет опровержения, я пришел к выводу, что UIWebView в UITableViewCell — не очень хорошая идея.Хотя я не тестировал локальную htmlString...

Другие советы

Мы добились определенного успеха в использовании веб-просмотров в ячейках.Если вы хотите, чтобы ячейка получала события касания, вам необходимо установить веб-просмотр userInteractionEnabled собственность на НЕТ.Вам также необходимо использовать отдельный идентификатор reuseIdentifier для каждой ячейки, поскольку веб-просмотру требуется некоторое время для загрузки его содержимого и он может быть повторно использован до того, как будет готов.

Я сделал это, статически распределив ячейки веб-просмотра, как только узнал, сколько мне понадобится для таблицы, и начал их загрузку за кадром.Никаких повторных идентификаторов, вам нужно самому отслеживать ячейки и то, куда они идут.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top