[swift] SnapKit으로 웹뷰 설정하기

SnapKit은 Swift에서 Auto Layout을 쉽게 구현할 수 있도록 해주는 오픈 소스 라이브러리입니다. 이번 포스트에서는 SnapKit을 사용하여 웹뷰 설정을 어떻게 할 수 있는지 알아보겠습니다.

1. 프로젝트에 SnapKit 추가하기

우선 SnapKit을 프로젝트에 추가해야 합니다. Cocoapods을 사용하는 경우, Podfile에 아래와 같은 코드를 추가하고 pod install 명령어를 실행하세요.

pod 'SnapKit'

만약 Carthage를 사용한다면, Cartfile에 아래와 같이 추가하고 carthage update를 실행하세요.

github "SnapKit/SnapKit" ~> 5.0

2. 웹뷰 생성하기

먼저 웹뷰를 생성해야 합니다. 다음 코드를 사용하여 웹뷰를 생성하세요.

import UIKit
import WebKit
import SnapKit

class ViewController: UIViewController {

    var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        webView = WKWebView()
        view.addSubview(webView)
        
        // Auto Layout 설정
        webView.snp.makeConstraints { (make) in
            make.edges.equalToSuperview()
        }
    }

}

3. 웹뷰에 URL 로드하기

생성한 웹뷰에 URL을 로드해야 합니다. 아래 코드를 사용하여 URL을 로드하세요.

let url = URL(string: "https://www.example.com")
let request = URLRequest(url: url!)
webView.load(request)

4. 웹뷰 크기 조정하기

웹뷰의 크기를 조정하려면 makeConstraints 내부에서 widthheight를 설정하면 됩니다. 아래 코드를 사용하여 웹뷰 크기를 조정하세요.

webView.snp.makeConstraints { (make) in
    make.top.equalToSuperview().offset(20)
    make.left.equalToSuperview().offset(20)
    make.width.equalToSuperview().inset(40)
    make.height.equalTo(200)
}

위의 코드는 웹뷰를 상단으로 20pt, 좌측으로 20pt 이동시키고, 너비를 슈퍼뷰의 너비에서 40pt를 뺀 값으로 설정하며, 높이를 200pt로 설정합니다.

5. 웹뷰 외부 선언하기

만약 웹뷰를 다른 함수에서도 사용해야 한다면, var 키워드를 사용하여 웹뷰를 외부에서 접근할 수 있도록 선언하세요.

var webView: WKWebView!

...

func setupWebView() {
    webView = WKWebView()
    view.addSubview(webView)
    
    // Auto Layout 설정
    webView.snp.makeConstraints { (make) in
        make.edges.equalToSuperview()
    }
}

이제 SnapKit을 사용하여 웹뷰를 설정하는 방법을 알게되었습니다. SnapKit의 강력한 기능을 활용하여 더 편리하고 유연한 Auto Layout을 구현할 수 있습니다.

참고자료