iOS에서 WebView의 스크롤을 비활성화하는 방법은 생각보다 훨씬 간단합니다. iOS는 WebView의 scrollView 속성을 외부로 노출하고 있기 때문에, 해당 scrollView의 스크롤 기능만 꺼주면 됩니다.
webView.scrollView.isScrollEnabled = false
위 코드 한 줄이면 WebView에서 스크롤이 더 이상 작동하지 않습니다. 단순히 스크롤만 막고 싶다면 이 코드면 충분하지만, 처음부터 WebView를 로드하고 스크롤을 비활성화하는 전체 과정을 알고 싶다면 아래 순서를 따라가 보세요.
예제 프로젝트 만들기
Xcode에서 샘플 프로젝트를 생성하면서 WebView 로딩과 스크롤 제어 방법을 함께 살펴보겠습니다.
1단계 — 프로젝트 생성
Xcode → New Project → Single View Application을 선택하고 프로젝트 이름을 "WebViewScrollDisabling"으로 지정합니다.
2단계 — WebView 추가
Main.storyboard를 열고 아래 그림과 같이 UIWebView를 화면에 추가합니다.

3단계 — IBOutlet 연결
ViewController 클래스에 위에서 추가한 WebView용 IBOutlet을 선언하고 이름을 webView로 지정합니다.
@IBOutlet weak var webView: UIWebView!
4단계 — 웹 페이지 로드
이 예제에서는 TutorialsPoint 웹사이트를 WebView에 로드합니다. ViewController의 viewDidLoad 메서드에 다음 코드를 추가합니다.
webView.loadRequest(URLRequest(url: URL(string: "https://www.tutorialspoint.com/index.htm")!))
5단계 — 앱 실행 및 스크롤 확인
앱을 실행하면 TutorialsPoint 웹사이트가 정상적으로 로드됩니다. 이 상태에서 WebView를 스와이프해 보면 아직 스크롤이 가능한 것을 확인할 수 있습니다.

6단계 — 스크롤 비활성화
이제 목표는 WebView의 스크롤을 막는 것입니다. WebView 내부에 있는 scrollView의 스크롤을 비활성화하면 되며, 웹뷰를 로드한 뒤 다음 한 줄을 추가합니다.
webView.scrollView.isScrollEnabled = false
코드를 추가한 후 viewDidLoad 메서드는 다음과 같이 완성됩니다.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
webView.loadRequest(URLRequest(url: URL(string: "https://www.tutorialspoint.com/index.htm")!))
webView.scrollView.isScrollEnabled = false
}7단계 — 결과 확인
앱을 다시 실행하면 이전과 마찬가지로 TutorialsPoint 웹사이트가 로드되지만, 이번에는 WebView를 아무리 스와이프해도 스크롤되지 않는 것을 확인할 수 있습니다.

참고: UIWebView는 지원이 중단되었습니다
UIWebView는 iOS 12부터 공식적으로 지원 중단(deprecated)되었으며, 현재는 WKWebView 사용이 권장됩니다. 다행히 WKWebView 역시 scrollView 속성을 제공하므로 동일한 방식으로 스크롤을 비활성화할 수 있습니다.
let webView = WKWebView(frame: view.bounds) webView.scrollView.isScrollEnabled = false