ios - 如何在快速加载 PDF 时删除 UIWebView 中的背影

标签 ios swift uiwebview uiwebviewdelegate

我正在尝试在 UIWebView 中显示 PDF 文件。工作正常。但是,PDF View 的背面有阴影。我不知道如何完全删除它。

我的代码:

func webViewDidFinishLoad(webView: UIWebView) {
    for object in webView.scrollView.subviews
    {
            if NSStringFromClass((object.classForCoder)) == "UIWebPDFView"
            {
                let pdfVi = object

                for pdf_view_sub in (pdfVi.subviews)
                {
                    if NSStringFromClass((pdf_view_sub.classForCoder)) == "UIPDFPageView"
                    {
                        let pdfVi_lay = pdf_view_sub
                        pdfVi_lay.layer.shadowOpacity = 0.0
                    }
                }
            }
        }
}

我的形象

enter image description here

当我们开始滚动时,上面的代码不起作用。这意味着,如果我们试图向上滚动,相同的阴影会自动出现在 PDF 的背面。

最佳答案

就我而言,我也有类似的情况。我只需要在 UIWebView 中为 PDF 查看器更改 Swift3 中的边框和背景颜色,重要的是为 PDF 以外的其他文件保留另一种颜色。

这不是精确的解决方案,但它是适合您的问题的解决方案。无论如何,此解决方案可用于更多场景。

这是我的解决方案:

    var color = UIColor.white
    for object in webView.scrollView.subviews {
        if NSStringFromClass((object.classForCoder)) == "UIWebPDFView" {
            for pdf in (object.subviews) {
                if NSStringFromClass((pdf.classForCoder)) == "UIPDFPageView" {
                    color = UIColor(red:0.502, green:0.502, blue:0.502, alpha:1)
                }
            }
        }
    }

    webView.backgroundColor = color
    webView.layer.shadowOpacity = 0.0
    webView.scrollView.backgroundColor = color
    webView.scrollView.layer.shadowOpacity = 0.0
    for object in webView.scrollView.subviews {
        object.backgroundColor = color
        object.layer.shadowOpacity = 0.0
        if NSStringFromClass((object.classForCoder)) == "UIWebPDFView" {
            object.backgroundColor = color
            object.layer.shadowOpacity = 0.0
            for pdf in (object.subviews) {
                pdf.backgroundColor = color
                pdf.layer.shadowOpacity = 0.0
                if NSStringFromClass((pdf.classForCoder)) == "UIPDFPageView" {
                    pdf.backgroundColor = color
                    pdf.layer.shadowOpacity = 0.0
                }
            }
        }
    }

关于ios - 如何在快速加载 PDF 时删除 UIWebView 中的背影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35572737/

相关文章:

ios - 从 UIWebView html 获取背景颜色?

ios - 如何使用 CALayer renderInContext 并保持透视变换?

android - 如何减少 flutter 中的视频录制大小?

ios - 如何在 Swift 中按顺序为一组 ImageView 设置动画?

ios - Alpha map 在 scenekit swift ios 中不起作用

ios - ios,Web View 中的Youtube全屏旋转

android - 使用配置文件发布移动(React Native) Artifact

ios - 在 UIScrollView 中调整 AVPlayer 的大小

ios 8 Swift - 带有嵌入式 CollectionView 的 TableView

ios - 在 iPad Pro 中没有调用 shouldStartLoadwithRequest