4

我在我的 pdf 视图中设置了一个搜索栏,可以突出显示我正在寻找的单词。当我尝试删除突出显示以便我可以搜索新单词时。我试图扭转我所做的,将颜色更改为白色,并删除注释但没有任何效果。我想在用户单击取消按钮时清除突出显示。我究竟做错了什么?

func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
    i = 0
    unhighlight(searchTerms: [searchWord])
    searchBar.text! = ""
}




private func highlight(searchTerms: [String]?)
{


    searchTerms?.forEach { term in
        selections = pdfView.document?.findString(term, withOptions: [.caseInsensitive])

        selections?.forEach { selection in
            selection.pages.forEach { page in
                highlight = PDFAnnotation(bounds: selection.bounds(for: page), forType: .highlight, withProperties: nil)
                highlight.endLineStyle = .square
                highlight.color = UIColor.orange.withAlphaComponent(0.5)

                page.addAnnotation(highlight)
            }
        }
    }
}


func unhighlight(searchTerms: [String]?)
{


    searchTerms?.forEach { term in
        selections = pdfView.document?.findString(term, withOptions: [.caseInsensitive])

        selections?.forEach { selection in
            selection.pages.forEach { page in
                highlight = PDFAnnotation(bounds: selection.bounds(for: page), forType: .highlight, withProperties: nil)
                highlight.endLineStyle = .square
                highlight.color = UIColor.white.withAlphaComponent(0.5)

                page.addAnnotation(highlight)



            }
        }
    }
}
4

1 回答 1

0

不确定您是否解决了问题,但我相信您只需将这些注释传递给 PDFView 内置的 self.highlightedselections 数组。将该数组设置为 nil 应该清除突出显示,而不是创建自己的注释。

在搜索时,它应该提供一个 PDFSelection,您可以在其中设置 .color 属性

于 2019-10-09T13:52:15.097 回答