2014-12-26 2 views
0

번들에서 HTML 문서를로드하는 단일 UIWebView로 매우 간단한 장면이 있습니다. webView는 상단 레이아웃 가이드 아래의 화면을 채우고 권장되는 제약 조건을 사용합니다. 두 가지 이상한 행동이 있습니다 :UIWebView가 제대로 스크롤되지 않는 이유는 무엇입니까?

  1. 조금 아래로 스크롤되는 내용부터 시작합니다. 아래의 첫 번째 이미지에서이를 볼 수 있습니다. 분홍색은 UIWebView의 색상이고 html 자체는 흰색입니다.

  2. (다시 : 사진보기) 내용이 맨 아래까지 스크롤되었지만 스크롤러가 webView의 맨 위에 있지 않기 때문에 webView의 UIScrollView 자체에 뭔가 이상한 점이 있습니다. 콘텐츠 상단에 있습니다.

내용은 쉽게 그 분홍색 영역으로 스크롤 않으며, 내용이 모든 방법까지 스크롤 할 때, 스크롤 막대가있는 UIWebView의 맨 아래에 있습니다. 두 번째 이미지보기.

프로그래밍 방식으로 contentOffset을 설정할 수 있다는 것을 알았지 만 webViewDidFinishLoad 함수에서만 작동하고 가시 점프가 발생합니다. 웹보기가 먼저 그려지기 때문에 스크롤이 잘 안되기 때문입니다. 의 ViewController

@charset "UTF-8"; 
body { 
    font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; 
    font-size: 16px; 
} 

그리고 여기에 있습니다 : :

<!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 : 여기

은 (공간을 잘립니다) HTML입니다

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 Scrolled to bottom

+0

는 웹보기의 레이아웃 문제가, 당신이있는 ScrollView 내부 웹보기가 있습니까 인터페이스 빌더 – JeanLuc

+0

의 설정을 보여 주 시겠어요?그렇다면 웹 뷰에는 scrollview 자체가 포함되어 있으므로 두 개의 scrollview로 끝나기 때문에 필요하지 않습니다. 이는 필자의 경우에는 필요하지 않다고 생각합니다. – JeanLuc

+0

@JeanLuc : scrollview 내부에 webview가 없습니다. –

답변

0

Initial View 그래서, 나는 방법으로 그것을 알아 낸 것 같아요. 이 장면에 탐색 모음이 있습니다. Webview의 최상위 제약 조건을 Top Layout Guide로 설정했는데, 이것이 실제 dang webview의 최상위를 원하기 때문에 의미가 있습니다. 그러나, 그것은 어떤 이유에서 나에게 정결하지 못한 것처럼 보입니다. 그래서 그것을 슈퍼 뷰 (장면의 주된 관점)의 꼭대기에 묶도록 변경했습니다.

이 기능 : 반투명 탐색 모음 아래에 분홍색 색조가 있지만 웹보기의 실제 내용이 올바르게 위치합니다.

UIWebView는 전체보기에 맞게 크기가 조정되고 탐색 모음이있는 경우 해당 크기 조정이 실제로 필요한지 여부와 관계없이 탐색 막대의 크기를 허용하기 위해 자체 scrollview를 축소합니다. 정당화되었다. 아마도 내 애플 리케이션이하고있는 일을하고있다.하지만 그렇지 않다면 UIWebView에 대한 좋은 행동이라고 생각하지 않는다.

-Dave

관련 문제