Отрисовка UIWebView в drawRect с помощью loadHTMLString

У меня проблема с UIWebView. Я бы хотел отобразить в нем свой собственный html-код. Когда я добавляю веб-представление в качестве подпредставления и вставляю некоторый html-код, он отлично отображается. Когда дело доходит до некоторого оптимизированного рисования ячейки tableview с помощью метода drawRect, возникает проблема. Отрисовка потомков UIView работает таким образом. Можно даже загрузить URL-адрес с помощью метода loadRequest, установив делегат, соответствующий протоколу UIWebViewDelegate и перерисовав ячейку таблицы с помощью setNeedsDisplay при вызове webViewDidFinishLoad. Он действительно отображается, но когда дело доходит до loadHTMLString, ничего не отображается, только белый прямоугольник. Из-за соображений производительности я должен рисовать в методе drawRect.

Любые идеи? Заранее спасибо ник

Пример фрагмента кода для HTML-кода, загружаемого UIWebView:

NSString *html = @"<html><head><title>My fancy webview</title></head><body style='background-color:green;'><p>It somehow seems<h2 style='color:black;'>this does not show up in drawRect</h2>!</p></body></html>"; 
[webView loadHTMLString:html baseURL:nil];

Фрагмент метода drawRect:

- (void)drawRect:(CGRect)aRect {
    CGContextRef context = UIGraphicsGetCurrentContext();

    [[webView layer] renderInContext:context];
}

person Nick Weaver    schedule 18.03.2010    source источник
comment
Возможно, вы могли бы отобразить веб-представление в графическом контексте изображения, сохранить это изображение и либо добавить его в иерархию представления ячейки табличного представления, либо нарисовать его в графическом контексте в drawRect, в зависимости от ваших потребностей.   -  person Heiberg    schedule 16.12.2011


Ответы (1)


Я думаю, вам нужно перенастроить ячейку по этому индексу, а не вызывать setNeedsDisplay.

person Rajat Talwar    schedule 27.04.2011
comment
скорее вызовите [super drawRect: aRect]; . - person ; 22.01.2012