【发布时间】:2014-05-15 18:08:39
【问题描述】:
我正在尝试从在 iOS7 中显示 PDF 的 UIWebView 中删除/隐藏阴影。 我已经在 stackoverflow 和 Internet 上的其他解决方案上尝试过 所有 解决方案,但它不起作用。 也许是因为我正在使用 NSURLSession 从服务器加载 PDF 然后显示它。
现在它看起来像这样:
我的第一个猜测是它不起作用,因为 NSURLSession 委托不在主线程上,但即使我删除主线程上的子视图(包含阴影)并调用 setNeedsDisplay 它也不会改变.
我正在启动DownloadTask,当任务完成并调用委托时,我会删除层。
- (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 中调用它。
非常感谢任何提示!
【问题讨论】:
-
我认为这里有同样的答案stackoverflow.com/questions/8480571/…
标签: pdf ios7 uiscrollview shadow