2017-01-20 30 views
0

내 프로젝트에서 나는 WKWebView가 스토리 보드 (그림의 회색)에서 생성 한 viewForEmbeddingWebView라는 다른 UIView 안에 임베드 된 것을 보여주고 싶은 뷰 컨트롤러가 있습니다.WKWebView를 사용자 정의 UIView에 올바르게 포함시키는 방법은 무엇입니까?

grey view titled viewForEmbeddingWebView in my View controller

나는 나의의 ViewController에서이 논리를 구현했습니다 :

import UIKit 
import WebKit 

class ViewController: UIViewController, WKUIDelegate { 

    var webView: WKWebView! 

    @IBOutlet weak var viewForEmbeddingWebView: UIView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     webView = WKWebView(frame: viewForEmbeddingWebView.frame, configuration: WKWebViewConfiguration()) 
     self.viewForEmbeddingWebView.addSubview(webView) 
     self.webView.allowsBackForwardNavigationGestures = true 
     let myURL = URL(string: "https://www.apple.com") 
     let myRequest = URLRequest(url: myURL!) 
     webView.load(myRequest) 

    } 

} 

빌드 후 및 시뮬레이터에서 실행 나는 다음을 참조 : after running my code

그것은 WKWebView를 표시하지만 경계의 모양 잘못된 (첫 번째 : viewForEmbeddingWebView의 경계에 맞지 않으며 두 번째 : 상단에 흰색 틈이 있음). 나는 사과의 사이트에서 WKWebView를 사용해야한다는 것을 읽었습니다. https://developer.apple.com/reference/webkit/wkwebview 그러나 그들의 예는 내 상황이 아닙니다. ViewController의 전체보기에서 WKWebView를로드하는 상황을 처리하는 방법 만 보여주기 때문에 내 상황이 아닙니다. 하지만 나중에이 WKWebView 주위에 또 다른 UI가 필요할 것이므로 다른 뷰에 포함되어야합니다. WKWebView 전에는 WebView가 있었지만 iOS 8이 등장한 이후에는 WKWebView를 사용해야합니다. 많은 자료를 살펴 봤지만 Swift 3 및 Xcode 8에서 좋은 답변을 찾지 못해서 도와주세요.

저는 Xcode 8과 Swift 3을 iOS 10.2와 함께 사용하고 있습니다.

답변

5

당신은 (스위프트 3.0)이 같은 WKWebView을 초기화 할 : 제대로 작동되지만 문제는 완전 해결되지

webView = WKWebView(frame: viewForEmbeddingWebView.bounds, configuration: WKWebViewConfiguration()) 
webView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
self.viewForEmbeddingWebView.addSubview(webView) 
+0

. 귀하의 솔루션에서 나는 여전히 WKWebView의 상단에 하얀 틈이 보인다. 그것을 숨기는 방법? WKWebView 뒤에있는 흰색 스크롤 뷰입니다. WKWebView를 화이트 갭이 없도록 만드는 방법? 추신 귀하의 솔루션에서 나는 또한 webView.uiDelegate = self를 보지 못합니다. WKWebView를 제대로 작동하게 만들지 않겠습니까? – Adelmaer

+0

스크린 샷을 추가하여 변경할 수있게 할 수 있습니까? Xcode의 뷰 계층 구조 디버거로 앱을 확인 했습니까? (https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/debugging_with_xcode/chapters/special_debugging_workflows.html) –

+0

빈 공간을 해결했습니다 : self.automaticallyAdjustsScrollViewInsets = false, viewDidLoad에 감사합니다. – Adelmaer