dev._.note

[Swift] IBAction과 IBOutlet 본문

Dev/SWIFT

[Swift] IBAction과 IBOutlet

Laena 2023. 11. 13. 18:08

👏 IBAction 

조작과 메서드를 연결, 사용자가 부품을 조작했을 때 실행할 일을 지정.
View에서 Event가 발생되었을 때 호출되는 함수.

 

👏 IBOutlet 

연결통로라는 의미, 인터페이스빌더에서 프로그램과의 연결통로.
Controller 함수에서 Button 등 View의 Control에 접근하기 위한 변수.

 


📌 IBAction, IBOutlet의 역할

둘의 역할은 StoryBoard와의 연결고리를 담당.
변수나 함수를 정의할 때 앞에 @IBAction 또는 @IBOutlet 키워드를 통해 StoryBoard에서 버튼이나 레이블 같은 컴포넌트와 연결가능.

IBAction은 Event가 일어난 경우 호출되는 Action을 정의. IBOutlet은 값에 접근하기위한 변수.

 

 

 


📌 IBAction, IBOutlet의 정의

Action은 입력이 들어왔을때 어떤 행동을 할지를 나타냄. Outlet은 데이터를 가져오는 것임.

앞에 붙게되는 IB는 Interface Builder의 약자. 즉 IBAction은 Interface Builder를 통해 받아온 정보로 Action을 수행하겠다는 의미.

 


📌 @의 의미

@는 컴파일러에게 어떤 속성을 가지고 있다고 전하는 역할을 하는 예약어. 컴파일러에게 @가 붙은 명령어에 대해 어떤 속성(attribute)이 부여되었음을 의미함.

 


버튼에 IBAction을 추가할 때 이벤트(Event) 종류

  • Did End On Exit : 편집 후 포커스 없어짐
  • Editing changed : 편집
  • Editing Did Begin : 편집할 때
  • Editing Did End : 편집 종료할 때
  • Touch Cancel : 터치 취소할 때
  • Touch Down : 터치 다운시
  • Touch Down Repeat : 여러번 터치 다운시
  • Touch Drag Enter : 드래그하여 객체에 들어갔을 때
  • Touch Drag Exit : 드래그하여 객체 벗어날 때
  • Touch Drag Inside : 객체를 터치하고 드래그 할때
  • Touch Drag Outside : 객체를 터치하고 드래그 하여 객체 밖으로 나올때
  • Touch Up Inside : 컨트롤에서 터치 업 할때
  • Touch Up Outside : 통제가 안되는 영역에서 터치 업할때
  • Value Changed : 값이 변경될 때

 


💡 버튼이 여러일 때 하나의 액션에 추가

  • 가능 : 하나의 액션을 만들고 추가적으로 버튼을 해당 액션에 드래그해서 중복 설정이 가능.

 

Apple 공식문서

 

UIControl.Event | Apple Developer Documentation

Constants describing the types of events possible for controls.

developer.apple.com

 


💡 IBOutletCollection 활용

비슷한 역할을 하는 IBOutlet끼리 묶어서 배열로 관리하는 IBOutletCollection타입을 활용 가능.

기존 IBOutlet을 한가지만 Ctrl + Drag로 연결 후 사용했다면 IBOutletColletcion도 방법은 동일.

여러개를 Ctrl + Drag로 추가하고 싶은 만큼 IBOutletColletion 위에 드래그.

 

'Dev > SWIFT' 카테고리의 다른 글

[Swift] Currying(커링)  (0) 2023.11.15
[Swift] Optional(옵셔널)  (1) 2023.11.14
[Swift] Dictionary (사전형)  (0) 2023.11.12
[Swift] Set (집합)  (0) 2023.11.10
[Swift] Enum(열거형)  (0) 2023.11.07