如何使用UIWebView在HTML页面中设置初始焦点。例如,下面是HTML页面。如果我在UIWebView中加载它,它会从HTML视图的(0,0)坐标显示。但我想改变起始位置,如下图所示。我试图改变偏移量,但没有用。
webView.scrollView.contentOffset = CGPointMake(100,100)。
答案 0 :(得分:0)
你可能不应该对此进行硬编码,因为有一个原因,它是硬编码的。如果谷歌,或任何你想要显示的网站改变他们的布局,你的立场将是过时的。而且你必须重新提交你的整个应用程序才能抵消这一点。
我的建议是使用自动布局和'缩放页面以适应'对于UIWebView
。
但你的代码是准确的。请务必将其放入webViewDidFinishLoad:
或viewDidLoad
以及UIWebViewDelegate
& UIScrollViewDelegate
已添加到您的头文件中,并在您的实现文件中调用:
self.webView.delegate = self;
self.webView.scrollView.delegate = self;
答案 1 :(得分:0)
以下代码适用于我,在Xcode 6.1.1中。要进行测试,只需将此ViewController类作为应用程序的根视图控制器:
import UIKit
class ViewController: UIViewController, UIWebViewDelegate {
override func loadView () {
let screenBounds : CGRect = UIScreen.mainScreen().bounds
var slimmerBounds : CGRect = UIScreen.mainScreen().bounds
slimmerBounds.size.width = slimmerBounds.size.width - 1
let webView = UIWebView(frame: slimmerBounds)
let url = NSURL (string: "http://google.com/")
let req = NSURLRequest(URL: url!)
webView.loadRequest(req)
webView.delegate = self;
let contentView = UIView(frame: screenBounds)
contentView.addSubview(webView)
self.view = contentView
}
func webViewDidFinishLoad(webView: UIWebView) {
webView.scrollView.contentOffset = CGPointMake(0, 100)
webView.bounds = UIScreen.mainScreen().bounds
}
}
顺便说一句......这将设置加载到此Web视图中的所有网址的初始位置。如果您只想定位第一页,则需要向webViewDidFinishLoad