如何在swift中加载PDF时删除UIWebView中的背影

时间:2016-02-23 08:46:18

标签: ios swift uiwebview uiwebviewdelegate

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

我的代码:

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的背面出现相同的阴影。

2 个答案:

答案 0 :(得分:0)

在我的情况下,我有类似的情况。我需要在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
                }
            }
        }
    }

答案 1 :(得分:0)

iOS 12和PDFView中的PDFKit的新功能,我们可以将其设置为false

pageShadowsEnabled = false