Closed joho2022 closed 6 months ago
IBAction : UI 요소(버튼)를 사용자가 해당 요소와 상호작용할 때 발생하는 이벤트를 코드 내의 메서드와 연결하기 위해 사용되는 키워드
UIButton : 사용자 상호 작용에 응답하여 사용자 지정 코드를 실행하는 컨트롤,
마우스 우측클릭 → Refactor → Rename : @IBOutlet변수의 이름을 스토리보드와 연동을 유지한 채 변경 가능함
앱 실행 중 사용자의 UI 요소와의 상호 작용은
IBAction 메서드를 통해 뷰에서 컨트롤러에 입력/변화를 준다.
IBOutlet을 통한 연결로 컨트롤러가 뷰에서 UI 요소의 상태를 업데이트한다.
사용자가 텍스트 필드에서 편집을 마치고, Return 키, Done 키 등을 눌러 텍스트 필드의 편집을 종료할 때 발생
텍스트 필드의 내용이 변경될 때마다 발생
사용자가 입력하는 동안 검색 결과를 필터링하거나 입력값을 검증 체크할 때 사용
사용자가 텍스트 필드에 터치하여 편집을 시작할 때 발생
텍스트 필드 선택 시 관련된 도움말이나 힌트를 표시할 때 사용
사용자가 텍스트 필드의 편집을 종료할 때 발생
편집이 끝난 후 입력 데이터의 검증, 텍스트 필드의 스타일을 변경할 때 사용
iOS 14이상에서 UIControlEvents에 추가된 새로운 이벤트 유형이다.
버튼을 연속해서 빠르게 여러 번 탭할 때 발생, 주로 사용자가 같은 버튼을 반복해서 누를 필요가 있을 때 사용. (숫자를 증가시키거나 감소시키는 Stepper ****컨트롤에 사용,
현재 터치가 취소되었을 때 발생 (전화나 텍스트 메시지 알림 등으로 인해 앱이 중단될 때 발생)
사용자가 버튼 내부 어디에서든 터치를 시작할 때 발생
사용자가 컨트롤을 길게 누르고 있을 때, touchDown 이벤트에 이어서 발생
사용자가 버튼 외부에서 터치를 시작하고, 드래그하여 버튼 내부로 들어올 때 발생
사용자가 버튼 내부에서 터치를 시작하고, 드래그하여 버튼 외부로 나갈 때 발생
사용자가 버튼 내부에서 터치를 시작하고, 손가락을 들지 않은 채로 버튼 외부로 드래그할 때 발생
사용자가 버튼 내부에서 터치를 시작했지만, 버튼 외부에서 손가락을 떼었을 때 발생
슬라이더, 스위치, 세그먼트 컨트롤과 같이 값이 변경될 때 발생하는 이벤트, 버튼에는 직접적으로 적용되지 않고, UIControl을 상속받은 다른 컨트롤에서 사용한다.
엇.. PR이 올라온 게 슬랙에 노티가 안왔었네요. 방금 확인했습니다
근데 이전 단계 커밋이 남아있는 것 같습니다. 새로 작업한 커밋만 모아서 새로 PR을 올려보시죠! 이 PR은 그냥 두고 해볼 수 있을 겁니다.
이 PR은 닫겠습니다 :)
주요 작업
학습 키워드
IBAction : UI 요소(버튼)를 사용자가 해당 요소와 상호작용할 때 발생하는 이벤트를 코드 내의 메서드와 연결하기 위해 사용되는 키워드
UIButton : 사용자 상호 작용에 응답하여 사용자 지정 코드를 실행하는 컨트롤,
고민과 해결
IBOutlet 변수명 변경하는 법
마우스 우측클릭 → Refactor → Rename : @IBOutlet변수의 이름을 스토리보드와 연동을 유지한 채 변경 가능함
IBAction 삭제 시 주의할 점
결과
Before
After
IBAction과 IBOutlet 연결 구조
앱 실행 중 사용자의 UI 요소와의 상호 작용은
IBAction 메서드를 통해 뷰에서 컨트롤러에 입력/변화를 준다.
IBOutlet을 통한 연결로 컨트롤러가 뷰에서 UI 요소의 상태를 업데이트한다.
IBAction 이벤트 종류
Did End On Exit
사용자가 텍스트 필드에서 편집을 마치고, Return 키, Done 키 등을 눌러 텍스트 필드의 편집을 종료할 때 발생
Editing Changed
텍스트 필드의 내용이 변경될 때마다 발생
사용자가 입력하는 동안 검색 결과를 필터링하거나 입력값을 검증 체크할 때 사용
Editing Did Begin
사용자가 텍스트 필드에 터치하여 편집을 시작할 때 발생
텍스트 필드 선택 시 관련된 도움말이나 힌트를 표시할 때 사용
Editing Did End
사용자가 텍스트 필드의 편집을 종료할 때 발생
편집이 끝난 후 입력 데이터의 검증, 텍스트 필드의 스타일을 변경할 때 사용
위에 4가지는 UITextField에서 사용자의 입력과 상호작용을 감지하고 처리하기 위해 사용
Primary Action Triggered
iOS 14이상에서 UIControlEvents에 추가된 새로운 이벤트 유형이다.
버튼을 연속해서 빠르게 여러 번 탭할 때 발생, 주로 사용자가 같은 버튼을 반복해서 누를 필요가 있을 때 사용. (숫자를 증가시키거나 감소시키는 Stepper ****컨트롤에 사용,
Touch Cancel
현재 터치가 취소되었을 때 발생 (전화나 텍스트 메시지 알림 등으로 인해 앱이 중단될 때 발생)
Touch Down
사용자가 버튼 내부 어디에서든 터치를 시작할 때 발생
Touch Down Repeat
사용자가 컨트롤을 길게 누르고 있을 때, touchDown 이벤트에 이어서 발생
Touch Drag Enter
사용자가 버튼 외부에서 터치를 시작하고, 드래그하여 버튼 내부로 들어올 때 발생
Touch Drag Exit
사용자가 버튼 내부에서 터치를 시작하고, 드래그하여 버튼 외부로 나갈 때 발생
Touch Drag Outside
사용자가 버튼 내부에서 터치를 시작하고, 손가락을 들지 않은 채로 버튼 외부로 드래그할 때 발생
Touch Up Outside
사용자가 버튼 내부에서 터치를 시작했지만, 버튼 외부에서 손가락을 떼었을 때 발생
valueChanged
슬라이더, 스위치, 세그먼트 컨트롤과 같이 값이 변경될 때 발생하는 이벤트, 버튼에는 직접적으로 적용되지 않고, UIControl을 상속받은 다른 컨트롤에서 사용한다.
버튼에 액션을 여러개 추가할 수 있을까? ✅
여러 버튼을 동시에 하나의 액션에 연결할 수 있을까?✅