我想获得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层。
感谢名单。
答案 0 :(得分:0)
UIWebView
非常单一,其组件通常无法访问。一切都或多或少地隐藏起来。
您可以通过循环浏览网页视图的子视图来“欺骗”,但您可能会遇到Apple拒绝访问私有类的行为,例如:
CALayer *webViewLayer;
for (UIView *_subview in [[[webView subviews] objectAtIndex:0] subviews]) {
if ([_subview isKindOfClass:[UIWebDocumentView class]]) {
webViewLayer = [_subview layer];
}
}
[webViewLayer renderInContext:ctx];
如果您打算在App Store上发布此应用,则访问私有类会导致您的应用被拒绝。