UIWebView在iOS7中显示PDF并隐藏灰色阴影
我正在尝试从iOS7中显示PDF的UIWebView中删除/隐藏阴影。 我尝试了stackoverflow上的所有解决方案,也尝试了Internet上的其他解决方案,但都不起作用。 可能是因为我使用NSURLSession从服务器加载PDF,然后显示它 现在看起来是这样的: 我的第一个猜测是它不起作用,因为NSURLSession委托不在主线程上,但即使我删除主线程上的子视图(包含阴影)并调用UIWebView在iOS7中显示PDF并隐藏灰色阴影,pdf,ios7,uiscrollview,shadow,Pdf,Ios7,Uiscrollview,Shadow,我正在尝试从iOS7中显示PDF的UIWebView中删除/隐藏阴影。 我尝试了stackoverflow上的所有解决方案,也尝试了Internet上的其他解决方案,但都不起作用。 可能是因为我使用NSURLSession从服务器加载PDF,然后显示它 现在看起来是这样的: 我的第一个猜测是它不起作用,因为NSURLSession委托不在主线程上,但即使我删除主线程上的子视图(包含阴影)并调用setNeedsDisplay它也不会更改 我正在启动一个下载任务,当任务完成并调用委托时,我将删除层
setNeedsDisplay
它也不会更改
我正在启动一个下载任务
,当任务完成并调用委托时,我将删除层
- (void)URLSession:(NSURLSession *)session
downloadTask:(NSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURL:(NSURL *)location {
NSData *data = [NSData dataWithContentsOfURL:location];
[self.webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
// remove shadow layers from scrollview
dispatch_async(dispatch_get_main_queue(), ^{
self.webView.scalesPageToFit = YES;
for (UIView* subView in [self.webView subviews])
{
if ([subView isKindOfClass:[UIScrollView class]]) {
for (UIView* shadowView in [subView subviews])
{
if ([shadowView isKindOfClass:[UIImageView class]]) {
[shadowView setHidden:YES];
}
}
}
}
[self.webView.layer setNeedsDisplay];
});
}
即使删除GCD异步块并在同一线程中执行,也不会改变任何内容。我还尝试在viewDidLoad
和viewDidAppear
中调用它
任何提示都非常感谢
- (void)webViewDidFinishLoad:(UIWebView *)webView {
for (UIView *object in webView.scrollView.subviews) {
if ([NSStringFromClass([object class]) isEqualToString:@"UIWebPDFView"]) {
UIView *pdfView = object;
for (UIView *pdfObjectSubview in pdfView.subviews) {
if ([NSStringFromClass([pdfObjectSubview class]) isEqualToString:@"UIPDFPageView"]) {
UIView *uiPDFPageView = pdfObjectSubview;
uiPDFPageView.layer.shadowOpacity = 0.0f;
}
}
}
}
}我想这里也有同样的答案