У меня довольно простая сцена с одним UIWebView, который загружает html-документ из пакета. WebView заполняет экран ниже верхнего руководства по расположению и использует рекомендуемые ограничения. Он имеет два нечетных поведения:Почему UIWebView не прокручивается правильно?
Он начинается с содержимого, прокрученного вниз. Вы можете увидеть это на первом изображении ниже. Розовый цвет UIWebView, а сам html - белый.
Есть что-то глупое о UIScrollView webView, потому что (снова: см. Рис.) Содержимое прокручивается до конца, но скроллер не находится в верхней части webView; это наверху содержимого.
Содержание делает легко прокручивать в эту розовую область, и когда содержимое прокручивается весь путь, полоса прокрутки в нижней части UIWebView. См. Второе изображение.
Я понимаю, что я могу программно установить contentOffset, но он работает только в функции webViewDidFinishLoad, а затем он вызывает видимый прыжок, потому что веб-просмотр сначала рисует, а затем прокручивает, так что это нехорошо.
Вот HTML (усеченный для пространства):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<link href="help.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h2>Frequently-asked questions</h2>
</body>
</html>
И CSS:
@charset "UTF-8";
body {
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-size: 16px;
}
А вот ViewController:
class HelpViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let navController = self.navigationController
navController?.navigationBarHidden = false
}
override func viewWillAppear(animated: Bool) {
loadURL();
}
func loadURL() {
let htmlName = "support";
let url = NSBundle.mainBundle().URLForResource(htmlName, withExtension: "html")
self.webView.delegate = self;
if let goodURL = url {
let request = NSURLRequest(URL: goodURL)
self.webView.loadRequest(request)
}
}
}
Похоже, проблема должно быть связано с чем-то в IB, но я не вижу, что. Любые яркие идеи?
Заранее благодарен!
-Dave
это вопрос макет WebView, пожалуйста, покажите настройку в Interface Builder – JeanLuc
у вас есть WebView внутри Scrollview?если это так, вам это не нужно, потому что веб-просмотр содержит scrollview, и вы получите два scrollview, которые, как мне кажется, не требуются в вашем случае. – JeanLuc
@JeanLuc: У меня нет веб-просмотра внутри прокрутки. –