在显示pdf时,是否可以在UIwebview中删除[“Page 1 of 20”视图]?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在显示pdf时,是否可以在UIwebview中删除[“Page 1 of 20”视图]?相关的知识,希望对你有一定的参考价值。
经过多次谷歌搜索后,我无法找到解决方案。我有一个带有PDF的UIWebView。
我不想要视图:“第1页,共20页”查看PDF文件时左上角的小视图。有可能删除这个吗?
答案
斯威夫特3和WKWebView
我得到了WKWebView
的所有子视图,然后删除WKPDFPageNumberIndicator
:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let webViewSubviews = self.getSubviewsOfView(v: self.webView)
for v in webViewSubviews {
if v.description.range(of:"WKPDFPageNumberIndicator") != nil {
v.isHidden = true // hide page indicator in upper left
}
}
}
func getSubviewsOfView(v:UIView) -> [UIView] {
var viewArray = [UIView]()
for subview in v.subviews {
viewArray += getSubviewsOfView(v: subview)
viewArray.append(subview)
}
return viewArray
}
你可能要设置webView.navigationDelegate = self
更新(未测试) - Swift 4
保持上面的getSubviewsOfView
函数并修改webView函数,如下所示:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let webViewSubviews = self.getSubviewsOfView(v: self.webView)
for v in webViewSubviews {
if v.isKind(of: UILabel.self) || v.isKind(of: UIImageView.self) || v.isKind(of: UIVisualEffectView.self) {
v.isHidden = true
}
}
}
另一答案
此代码适用于ios9,10(已测试)
func hidePageNumberView(v: UIView) {
for subView in v.subviews {
if subView.isKindOfClass(UIImageView) || subView.isKindOfClass(UILabel) || subView.isKindOfClass(UIVisualEffectView){
subView.hidden = true
if subView.isKindOfClass(UILabel) {
if let sv = subView.superview {
sv.hidden = true
}
}
} else {
hidePageNumberView(subView)
}
}
}
实现webView.scrollView.delegate
并在scrollViewDidScroll
上运行上面的代码
希望这有帮助。
iOS 11 / Swift 4:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
hidePageNumberView(scrollView)
}
func hidePageNumberView(_ v: UIView) {
for subView in v.subviews {
if subView is UIImageView || subView is UILabel || subView is UIVisualEffectView {
subView.isHidden = true
if subView is UILabel {
if let sv = subView.superview {
sv.isHidden = true
}
}
} else {
hidePageNumberView(subView)
}
}
}
另一答案
我找到了你问题的解决方案...你可以使用以下代码隐藏“第1页,共20页”:
for (UIView* subView in [webView subviews])
{
if ([subView isKindOfClass:[UIScrollView class]]) {
for (UIView* shadowView in [subView subviews])
{
if ([shadowView isKindOfClass:[UIImageView class]]) {
[shadowView setHidden:YES];
}
}
}
}
希望这可能对某些人有所帮助......谢谢......
以上是关于在显示pdf时,是否可以在UIwebview中删除[“Page 1 of 20”视图]?的主要内容,如果未能解决你的问题,请参考以下文章