제품 이름의 경우 IOSWebViewTutorial을 사용한 다음 조직 이름 및 조직 식별자를 사용자 지정 값으로 작성합니다. Swift를 언어로 입력하고 다음을 선택합니다. 더 나아가기 전에 컴파일 오류를 수정할 차례입니다. 대리자를 설정할 때 대리자와 일치하는 프로토콜을 준수해야 합니다. 예. 모든 navigationDelegate 프로토콜 메서드는 선택 사항이지만 Swift는 아직 알지 못합니다. 우리가 웹 보기에 적합한 대리자라고 약속하지만 프로토콜을 구현하지 않았다는 것은 알고 있습니다. Swift는 URL이 텍스트 문자열인 URL에 익숙하지만 URL을 특정 URL 데이터 유형에 저장하여 많은 추가 기능을 추가합니다. 따라서 코드의 첫 번째 줄은 «https://www.hackingwithswift.com»문자열에서 새 URL을 만듭니다. hackingwithswift.com 예제 웹 사이트로 사용하고 있지만 원하는 웹 사이트로 변경하십시오. 나는 대규모, 무료 SwiftUI 튜토리얼 컬렉션을 작성하고, 또한 유튜브에 무료 SwiftUI 자습서의 성장 목록을 가지고 무료로 SWIFTUI 알아보기 – 오늘 시작! wayou/WebViewExample에서 새 릴리스에 대한 알림을 원하십니까? WKWebview는 루트 뷰에 할당되고 뷰 컨트롤러는 WKNavigationDelegate 프로토콜의 대리자입니다.

viewDidLoad 메서드를 위의 코드로 변경하려면 iOS 12 및 Swift 5에서 잘 작동합니다. 불행히도 웹 페이지에는 일반적으로 움직이는 조각이 많기 때문에 마일리지가 다를 수 있습니다. 중요한 것은 웹 페이지의 높이를 가능한 한 늦게 평가하는 것이지만 나중에는 그렇지 않습니다. 페이지가 완전히 로드가 완료되는 즉시 콘텐츠 높이를 얻으려고 합니다. 이것이 바로 수정사항입니다. 그러나 내가 논의하고 싶은 것은 ViewController가 이제 Swift에서 불가능한 두 가지에서 상속되는 것처럼 보이는 방법입니다. 아시다시피 클래스 A: B는 클래스 B에서 제공하는 기능을 기반으로 하는 A라는 새 클래스를 정의합니다. 그러나 클래스 A: B, C는 UIViewController(목록의 첫 번째 항목)에서 상속되며 WKNavigationDelegate 프로토콜을 구현할 것을 약속합니다. 첫 번째 줄은 파일의 위치를 저장하는 Swift의 방법입니다 URL이라는 새 데이터 형식을 만듭니다. URL을 https://www.hackingwithswift.com 같이 온라인에서 사용하는 것처럼 이미 잘 알고 있을 수 있지만 로컬 파일 이름을 저장하는 데에도 마찬가지로 중요합니다. 이제 webView.load(«https://www.apple.com»)를 실행하여 웹 사이트를 로드할 수 있습니다. 위의 스니펫을 웹 보기에 할당할 때 변수 HTML에 페이지의 HTML 문자열이 포함되어 있는지 확인합니다.

스크롤 보기와 웹 보기 모두 스크롤할 수 있으므로 이제 문제가 발생합니다! 명령 + A는 모든 코드를 선택한 다음 제어 + I를 선택합니다. 뷰를 이미지로 변환하기 위한 일반 drawHierarchy() 메서드를 사용할 수 있지만 WebKit에는 필요에 따라 이미지를 자르고 크기를 조정할 수 있는 자체 takeSnapshot() 메서드가 함께 제공됩니다. 다음으로, 앞서 설명한 5개의 대리자 함수를 구현합니다. 함수 본문을 인쇄(#function)하도록 설정하면 함수가 호출되는 순서를 볼 수 있습니다.