iOS 개발 의 터치 이벤트
iOS 에서 터치 가 발생 하면 이벤트 가 UIApplication 이벤트 대기 열 에 추 가 됩 니 다.UIApplication 은 이벤트 대기 열 에서 맨 앞 에 있 는 이 벤트 를 꺼 내 배포 합 니 다.보통 메 인 창 에 먼저 배포 되 고 메 인 창 은 hitTest:with Event 방법 을 사용 합 니 다.적당 한 이벤트 트리거 그림 을 찾 으 면 터치 되 는 보기 대상 을 찾 습 니 다.
찾기 프로 세 스 는 다음 과 같 습 니 다:
만 져 진 보기 대상 을 찾 은 후 이 보기 대상 이 이 터치 사건 을 처리 할 수 있 는 지 판단 해 야 합 니 다.처리 할 수 없 으 면 누가 처리 해 야 하 는 지 판단 해 야 합 니 다.따라서 응답 자 체인 이 나타 나 는 역할 은 이벤트 응답 자 를 찾 는 것 입 니 다.
응답 자 체인 원칙:
상기 사건 의 배포 와 응답 자 체인 은 우리 가 관심 을 가 질 필요 가 없습니다.이런 조작 은 자동 으로 실 행 됩 니 다.우리 가 조작 할 필요 가 없습니다.우 리 는 그들의 원 리 를 이해 하기 만 하면 됩 니 다.
iOS 에서 모든 클래스 가 이 벤트 를 처리 하고 받 아들 일 수 있 는 것 은 아 닙 니 다.UIResponsder 를 계승 하 는 대상 만 이 이 벤트 를 처리 할 수 있 습 니 다.
UIResponder 의 대상 을 계승 하여 이 벤트 를 처리 할 수 없 는 경우:
userInteractionEnabled = NO;
hidden = YES;
alpha = 0 ~ 0.01;
touches Began:withEvent 방법 이 구현 되 지 않 았 습 니 다.UIResponsder 터치 응답 재 작성 방법:
#pragma mark
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
#pragma mark
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
#pragma mark
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
#pragma mark ,
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
4.UITouch 대상UIResponsder 터치 응답 방법 에서 UITouch 대상 을 가 져 와 야 합 니 다:
// ( )
UITouch *touch = [touches anyObject];
//
CGPoint current = [touch locationInView:self.view];
//
CGPoint previous = [touch previousLocationInView:self.view];
기타 상용 속성:window:창 터치
view:터치 가 있 는 보기
tapCount:단시간 클릭 횟수
이런 것들 을 알 게 되면 터치 사건 을 이용 하여 재 미 있 는 일 을 할 수 있 습 니 다.(^o^)/~여 기 는 구체 적 인 코드 를 열거 하지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
iOS 개발 의 터치 이벤트iOS 에서 터치 가 발생 하면 이벤트 가 UIApplication 이벤트 대기 열 에 추 가 됩 니 다.UIApplication 은 이벤트 대기 열 에서 맨 앞 에 있 는 이 벤트 를 꺼 내 배포 합 니 다.보통 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.