Bie*_*bar 0 uiscrollview ios swift
嘿伙计们我在谷歌上搜索了一下,并在这里阅读了一些关于堆栈溢出的主题,但没有一个云真的帮助我,所以我希望你能帮助我.我有一个UIWebView显示本地保存的PDF,它工作得很好,但我也想在加载PDF时设置缩放级别.我这样解决了.
override func viewDidAppear(animated: Bool) {
WebView.scalesPageToFit = true
if(defaults.objectForKey("positionY") != nil){
WebView.scrollView.setZoomScale(defaults.objectForKey("zoomlevel") as! CGFloat, animated: false)
let offest = CGPoint(x: defaults.objectForKey("positionX") as! CGFloat, y: defaults.objectForKey("positionY") as! CGFloat)
WebView.scrollView.setContentOffset(offest, animated: false)
print(defaults.objectForKey("zoomlevel") as! CGFloat)
}
Run Code Online (Sandbox Code Playgroud)
但这并不是很好,因为它对用户来说看起来很糟糕,所以我试图将我的代码移动到ViewWillAppear,但是它不再起作用了,并且pdf没有缩放.感谢任何解决方案的想法:)
编辑,因为我在下面写了一条评论,我在打印后打印了Zoomscale的值.
WebView.scrollView.setContentOffset(offest, animated:false)
println(defaults.objectForKey("zoomlevel") as! CGFloat)
println(WebView.scrollView.zoomScale)
Run Code Online (Sandbox Code Playgroud)
如果我在ViewWillAppear或ViewDidLoad中执行此操作,则第一个值是保存的值,如1.82366,第二个值仍为1.0.如果我在ViewDidAppear中调用它,则第一个和第二个值相等,除了View的第一个外观(app start).因此,如果它启动App,它就像上面描述的ViewWillAppear一样,但如果我通过segue从另一个ViewController返回,它适用于ViewDidAppear.
小智 5
我知道这个问题现在可能已经太老了,但我终于在我的swift代码中解决了它,我会把它放在这里它可能对其他人有用:为了webview.scrollview.setzoomscale工作,zoomscale应该介于maximumzoomscale和minimumzoomscale属性之间.默认情况下,这两个都是1,这就是为什么缩放对你不起作用.添加这个并且应该没问题:
webView.scrollview.maximumZoomScale = CGFloat(10) // or any number higher than your zoomscale
Run Code Online (Sandbox Code Playgroud)
这应该工作了.
| 归档时间: |
|
| 查看次数: |
518 次 |
| 最近记录: |