[TIL] UIControl

Eden·2025년 8월 25일

UIControl은 iOS의 UIKit 프레임워크에서 제공하는 사용자 인터페이스
요소의 기본 클래스
중 하나입니다. 버튼, 스위치, 슬라이더 등과 같이
사용자 입력(터치, 드래그, 값 변경 등)에 반응하는 뷰의 기반
클래스입니다.\
UIView를 상속하고 있으며, 이벤트 처리와 상태 관리를 위한 기능을
제공합니다.


2. 주요 특징

  • 이벤트 기반 동작: 터치, 드래그, 값 변경과 같은 이벤트를 처리
  • 상태 관리: isEnabled, isSelected, isHighlighted 등의 상태
    제공
  • 다양한 서브클래스: UIButton, UISwitch, UISlider, UITextField
    등이 UIControl을 상속
  • Target-Action 패턴 지원: 특정 이벤트에 대해 메서드를 호출하도록
    연결 가능

3. 상태 (State)

UIControl은 다양한 상태를 가질 수 있습니다. - isEnabled: 컨트롤이
활성화되어 있는지 여부 - isSelected: 컨트롤이 선택되었는지 여부 -
isHighlighted: 컨트롤이 터치되었을 때 하이라이트 상태


4. 이벤트 (Event)

UIControl은 여러 이벤트를 지원합니다. 대표적인 이벤트는 다음과 같습니다.

이벤트 상수 설명


.touchDown 사용자가 화면을 터치했을 때
.touchUpInside 터치 후 컨트롤 내부에서 손가락을 뗐을 때
.touchUpOutside 터치 후 컨트롤 외부에서 손가락을 뗐을 때
.valueChanged 값이 변경되었을 때 (예: UISwitch, UISlider)
.editingChanged 텍스트 입력 시 값이 바뀔 때


5. Target-Action 패턴

UIControl은 target-action 패턴을 통해 특정 이벤트가 발생했을 때
메서드를 호출할 수 있습니다.

let button = UIButton(type: .system)
button.setTitle("확인", for: .normal)

button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)

@objc func buttonTapped() {
    print("버튼이 눌렸습니다.")
}

6. 주요 서브클래스

  • UIButton: 버튼 컨트롤
  • UISwitch: On/Off 스위치
  • UISlider: 값 조절 슬라이더
  • UITextField: 텍스트 입력 필드
  • UIDatePicker: 날짜 선택기

7. 활용 예시

  • 사용자 입력을 받아 특정 동작 수행 (버튼 클릭 → 화면 전환)
  • 값 변경을 실시간 반영 (슬라이더 → 음량 조절)
  • 선택 상태에 따른 UI 변경 (스위치 On/Off)

8. 결론

UIControl은 iOS에서 사용자와의 상호작용을 처리하는 핵심 클래스입니다.
이벤트와 상태 관리가 체계적으로 제공되며, target-action 패턴을 활용해
손쉽게 사용자 입력에 대응할 수 있습니다.

profile
iOS Dev

0개의 댓글