Проблема в рисовании слоя UIWebView - PullRequest
1 голос
/ 01 июля 2010

Я хочу получить слой UIWebView, затем я хочу его визуализировать. Это мой код:

webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 44, 700, 1024)];
[webView loadHTMLString:@"Display This HTML String" baseURL:nil];

CALayer *webViewLayer = [webView layer];
[webViewLayer renderInContext:ctx];

Все, что я получаю, это пустая страница.

но если я возьму UIView вместо UIWebView, то код работает нормально. Я делаю что-то не так, что я не могу заметить или не могу получить слой UIWebView или есть какой-то другой способ получить слой UIWebView.

Thanx.

1 Ответ

0 голосов
/ 01 июля 2010

UIWebView довольно монолитен, и его компоненты, как правило, не предназначены для доступа. Все более или менее скрыто.

Вы можете "обмануть", просматривая подпредставления веб-представления, но вы, вероятно, столкнетесь с неодобрением Apple в отношении доступа к закрытым классам, например ::10000

CALayer *webViewLayer;
for (UIView *_subview in [[[webView subviews] objectAtIndex:0] subviews]) {
    if ([_subview isKindOfClass:[UIWebDocumentView class]]) {
        webViewLayer = [_subview layer];
    }
}
[webViewLayer renderInContext:ctx];

Доступ к закрытым классам приведет к отклонению вашего приложения, если вы намерены опубликовать его в App Store.

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