iOS에서 프로그래밍 방식으로 스크롤 뷰 비활성화하기
스크롤 뷰(Scroll View)는 iOS 개발자가 다루게 되는 주제 중에서도 가장 까다롭고 복잡한 요소 중 하나로 꼽힙니다. 화면 크기보다 큰 콘텐츠를 표시할 때 필수적이지만, 상황에 따라 사용자의 스크롤 동작을 막아야 할 때도 있습니다.
이번 글에서는 코드 작성만으로 스크롤 뷰의 스크롤 기능을 비활성화하는 방법을 알아보겠습니다.
핵심 원리: isScrollEnabled 속성
스크롤 뷰를 비활성화하는 방법은 매우 간단합니다. UIScrollView가 기본으로 제공하는 isScrollEnabled 속성을 false로 설정하기만 하면 됩니다. 이 속성이 false가 되면 사용자가 화면을 드래그해도 콘텐츠가 스크롤되지 않습니다.
반대로 다시 스크롤을 허용하고 싶다면 해당 속성을 true로 변경해 주면 됩니다.
예제 코드
아래 코드를 여러분의 ViewController 파일에 그대로 복사해서 사용할 수 있습니다.
import UIKit
class ViewController: UIViewController {
@IBOutlet var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
// 스크롤 비활성화
scrollView.isScrollEnabled = false
}
}
추가 팁
- 동적 제어: 특정 조건에 따라 스크롤을 켜고 끄고 싶다면 버튼 액션이나 데이터 로딩 완료 시점 등에서
isScrollEnabled값을 자유롭게 변경하면 됩니다. - 인터페이스 빌더 활용: 코드 대신 스토리보드에서 스크롤 뷰를 선택한 뒤 Attributes Inspector의 'Scrolling Enabled' 체크박스를 해제하는 방법도 있습니다.
- bounces와의 차이:
isScrollEnabled = false는 스크롤 자체를 막지만,bounces = false는 스크롤은 가능하되 끝부분에서 튕기는 효과만 제거한다는 점을 혼동하지 않도록 주의하세요.
이처럼 isScrollEnabled 속성 하나만으로도 스크롤 뷰의 동작을 손쉽게 제어할 수 있습니다. 상황에 맞게 활용해 보시기 바랍니다.