【发布时间】:2015-09-12 06:26:15
【问题描述】:
我希望 UIWebView 中的内容适合屏幕,这是我 UIWebView 中 PDF 的当前状态:
这就是我希望它的外观,适合屏幕,每个页面的边缘到边缘:
而且我的 UIWebView 也不允许我放大或缩小页面,我该如何解决这两个问题?
这是我的代码:
class PdfViewController: UIViewController, UIWebViewDelegate {
@IBOutlet var myWebView: UIWebView!
@IBOutlet var progressView: UIProgressView!
var hasFinishedLoading = false
override func viewDidLoad() {
super.viewDidLoad()
myWebView.delegate = self
let url: NSURL! = NSURL(string: contentUrlPassedOn)
myWebView.loadRequest(NSURLRequest(URL: url))
self.myWebView.userInteractionEnabled = false
self.myWebView.scalesPageToFit = true
myWebView.contentMode = UIViewContentMode.ScaleAspectFit
myWebView.frame = self.view.frame
myWebView.scrollView.bouncesZoom = true
}
func webViewDidStartLoad(webView: UIWebView) {
var hasFinishedLoading = false
updateProgress()
}
func webViewDidFinishLoad(webView: UIWebView) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(1.0 * Double(NSEC_PER_SEC))),
dispatch_get_main_queue()) {
[weak self] in
if let _self = self {
_self.hasFinishedLoading = true
}
}
}
deinit {
myWebView.stopLoading()
myWebView.delegate = nil
}
func updateProgress(){
if progressView.progress >= 1 {
self.progressView.fadeOut()
self.imageView.fadeOut()
self.backgroundImageView.fadeOut()
self.titleLabel.fadeOut()
self.myWebView.userInteractionEnabled = true
} else {
if hasFinishedLoading {
progressView.progress += 0.002
} else {
if progressView.progress <= 0.3 {
progressView.progress += 0.004
} else if progressView.progress <= 0.6 {
progressView.progress += 0.002
} else if progressView.progress <= 0.9 {
progressView.progress += 0.001
} else if progressView.progress <= 0.94 {
progressView.progress += 0.0001
} else {
progressView.progress = 0.9401
}
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.008 * Double(NSEC_PER_SEC))),
dispatch_get_main_queue()) {
[weak self] in
if let _self = self {
_self.updateProgress()
}
}
}
}
谢谢
【问题讨论】:
-
设置
[myWebview setScalesPageToFit:TRUE];并尝试。 -
我做到了,页面仍然没有与侧面齐平。虽然它确实解决了缩放问题@CuteAngel
-
显示您的代码...请