2015-01-25 4 views
1

UIWebView를 사용하여 HTML 페이지의 초기 포커스를 설정하는 방법. 예를 들어, 다음은 HTML 페이지입니다. UIWebView에서 이것을로드하면 HTML 뷰의 (0,0) 좌표에서 표시됩니다. 그러나 나는 아래 이미지에서 설명한대로 시작 위치를 변경하고 싶다. 오프셋을 변경하려고했으나 사용하지 않았습니다.UIWebView 초기 위치 설정 방법?

webView.scrollView.contentOffset CGPointMake = (100, 100). 하나의 이유가 있기 때문에

enter image description here

답변

0

당신은 아마 단단하지 코드는 하드 코딩해야한다. Google 또는 표시하려는 웹 사이트가 레이아웃을 변경하면 위치가 더 이상 사용되지 않습니다. 그리고 당신은 전체 앱을 다시 제출해야합니다.

나의 추천은 UIWebView을 위해 '에 맞게 규모 페이지'자동 레이아웃을 사용합니다.

하지만 코드가 정확합니다. 하위 뷰에

self.webView.delegate = self; 
self.webView.scrollView.delegate = self; 
+0

에 몇 가지 추가 로직을 추가해야합니다 .. 나는 .. PDF 파일 오프셋으로 내 질문에 수정을 변경해야 잘.. – Coder

0
  1. 놓고있는 UIWebView : 당신이 webViewDidFinishLoad: 또는 viewDidLoad하고 UIWebViewDelegate & UIScrollViewDelegate는 헤더 파일에 추가하여 구현 파일에서 호출에 넣어해야합니다. 일반 UIView가 작동합니다.
  2. UIWebView를 인스턴스화 할 때 포함하는 UIView보다 약간 너비가 작은 화면 경계를 지정하십시오. 이상한, 알아.
  3. 다음 코드는 엑스 코드 6.1.1에, 나를 위해 작동 당신의 UIWebViewDelegate

의 webViewDidFinishLoad 방법에있는 UIWebView의 contentOffset를 설정합니다. 테스트하려면, 당신의 앱이의 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 
     } 
    } 

... 문제는이 웹보기에로드 모든 URL의 초기 위치를 설정합니다. 당신이 첫 번째 페이지를 배치하려는 경우, 당신은 내가 예를 들어 Google.com을 언급 webViewDidFinishLoad