Development Tip

UIButton 이벤트.

yourdevel 2020. 12. 10. 21:23
반응형

UIButton 이벤트. 차이점이 뭐야?


나는 그것에서 호출 된 팝 오버를 표시하는 동안 내 버튼이 "눌려진"상태를 유지해야하는 문제가 발생했습니다. Popover는 일부 필터의 선택기이며 필터는 버튼 자체에 표시됩니다. 내가 그것을 탭하면 팝 오버가 표시되면 무엇이든지 선택 취소됩니다.

터치 이벤트의 동작을 재정의하고 표준에 반응하지 않도록해야한다고 생각 touch up inside합니다. 그런 다음 다른 이벤트의 원인이 무엇인지 궁금했습니다. 하지만 iOS 라이브러리에서 이벤트 목록을 찾을 수 없으며 StackOverflow에서 touch up inside또는의 잘못된 동작에 대한 질문 일뿐 touch down입니다.

그렇다면 터치 이벤트의 차이점은 무엇입니까?

  1. 터치 취소-버튼을 터치했지만 손가락을 멀리 움직여도 선택 해제 된 상태로 유지됩니까?
  2. 터치 다운-탭에서 오른쪽.
  3. 터치 다운 반복 ??
  4. 터치 드래그 엔터 ??
  5. 터치 드래그 종료 ??
  6. 터치 드래그 내부 ??
  7. 터치 드래그 아웃 ??
  8. 내부를 터치-경계에 남아있는 버튼을 탭하고 놓을 때. UIButtons 상태를 Normal로 변경합니다.
  9. 밖에서 손질-버튼을 눌렀다가 놓으면 경계를 벗어나지 않습니까?

다른 IBAction은 UIButton에 의해 전송되지 않습니다. 또한 이러한 이벤트가 UIButton의 모양을 어떻게 변경합니까? 좋아요 highlighted또는 selected?

IBActions에 대한 좋은 기사에 대한 링크를 찾을 수 없었기 때문에 감사하겠습니다.


에서 애플의 문서UIControlEvents :

  1. UIControlEventTouchCancel

    컨트롤에 대한 현재 터치를 취소하는 시스템 이벤트입니다.

  2. UIControlEventTouchDown

    컨트롤의 터치 다운 이벤트입니다.

  3. UIControlEventTouchDownRepeat

    컨트롤에서 반복되는 터치 다운 이벤트 이 이벤트의 경우 UITouch tapCount 메서드의 값이 1보다 큽니다.

  4. UIControlEventTouchDragEnter

    컨트롤의 경계로 손가락을 드래그하는 이벤트입니다.

  5. UIControlEventTouchDragExit

    컨트롤 내부에서 경계 외부로 손가락을 드래그하는 이벤트입니다.

  6. UIControlEventTouchDragInside

    컨트롤의 경계 내에서 손가락을 드래그하는 이벤트입니다.

  7. UIControlEventTouchDragOutside

    컨트롤의 경계 밖으로 손가락을 드래그하는 이벤트입니다.

  8. UIControlEventTouchUpInside

    컨트롤의 범위 내에 손가락이있는 컨트롤의 터치 업 이벤트입니다.

  9. UIControlEventTouchUpOutside

    손가락이 컨트롤의 범위를 벗어나는 컨트롤의 터치 업 이벤트입니다.


일반적인 버튼의 일반적인 사용 / 발생 가능성 순서는 다음과 같습니다.

UIControlEventTouchDown : 사용자가 버튼을 탭했습니다. 접촉하는 손가락 / 스타일러스에 발화합니다.

UIControlEventTouchUpInside : 사용자가 버튼을 탭했습니다. 이것은 화면에서 뒤로 당겨진 손가락 / 스타일러스 접촉에서 발생합니다.


슬라이더 및 구성 요소 이동과 같은 드래그 이벤트에 유용합니다. 다음은 발생 순서입니다.

UIControlEventTouchDragInside : 손가락이 버튼 영역으로 드래그 될 때 트리거됩니다.

UIControlEventTouchDragExit : 드래그 모션 중에 트리거됩니다. 사용자의 손가락 / 스타일러스가 버튼의 경계를 벗어나므로 한 번만 호출됩니다.

UIControlEventTouchDragOutside : 'UIControlEventTouchDragExit'이후 드래그 모션 중에 트리거 되며 원래 터치가 계속되는 한 계속해서 호출 됩니다.

UIControlEventTouchUpOutside : 손가락 / 스타일러스가 더 이상 버튼 범위 내에 있지 않은 경우에만 손가락 / 스타일러스를 들어 올리는 것입니다. 이 이벤트를 버튼과 연관시키기 위해 어느 시점에서 터치가 버튼 내에 있어야한다는 점 (그리고 아마도 분명히)이 중요합니다.

참고 : 위의 내용이 다음과 같은 경우에 도움이 될 수 있습니다.

  1. 슬라이더 : 의도적 인 터치 일 수 있지만 빠른 스 와이프 동작으로 인해 손가락 움직임이 느슨하고 슬라이더 영역 밖으로 들어 올릴 수 있습니다.
  2. 손가락 / 스타일러스가 구성 요소 / 개체의 테두리에 닿을 때 움직임이 발생하도록 화면 주위를 밀 때처럼 구성 요소를 이동합니다.

기타 이벤트 :

UIControlEventTouchCancel : 사용자가 제어 할 수없는 것이 터치 동작을 취소하고 있습니다. 이것을 전화 측에서 "잘못되는"것으로 생각하십시오.

UIControlEventTouchDownRepeat : 사용자가 화를 내고 버튼을 격렬하게 탭할 때 감지하고 싶습니까? 아직 Windows 모드이고 "더블 클릭"을 시도하고 있는지 감지하고 싶으십니까? 또는 두 번 탭하면 다른 작업을 수행하도록 버튼을 디자인했을 수도 있습니다. 이 이벤트는 그 모든 것을 도와줍니다!


참조 :

SO 1 : UIControlEventTouchDragOutside와 UIControlEventTouchDragExit 간의 차이

SO 2 : UIControlEventTouchCancel이란 무엇입니까?

참고 URL : https://stackoverflow.com/questions/11389915/uibutton-events-whats-the-difference

반응형