UIWebView в пользовательском UITableViewCell - PullRequest
0 голосов
/ 18 сентября 2009

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

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

// из моего пользовательского класса 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]]];

}

спасибо

Ответы [ 3 ]

0 голосов
/ 23 ноября 2011

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

0 голосов
/ 28 января 2016

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

0 голосов
/ 12 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...