iOS 제스처
손짓
제스처는 터치 사건에 대한 봉인이다. 규칙적인 터치 사건의 집합이다.모든 제스처는 반드시 대상에게 받아들여져야 한다.동시에 모든 제스처는 특정 유형의 대상에게만 받아들여질 수 있다.너는 화면에 tap을 한 번 하고 반죽하는 대상으로 받아들이기를 기대할 수 없다.만약 네가 스크린을 가볍게 두드렸지만, 가볍게 두드린 종류로 검사하지 않았다면, 이번에는 헛두드린 셈이다.
ios에서는 모든 제스처를 7가지로 나눈다.
가볍게 두드리기: UITAp Gesture Recognizer 길게 누르기: UIlong Press Gesture Recognizer 회전: UIRotation Gesture Recognizer 접합: UIPinch Gesture Recognizer 평행 이동: UIPan Gesture Recognizer 가볍게 쓸기: UISwipe Gesture Recognizer 화면 가장자리 끌어내기: UIScreen Edge Pan Gesture Recognizer 그들은 제스처 식별기라고 부른다. 즉, 화면을 설정해야 그들이 화면을 감지할 수 있다.
다음은 7가지 제스처: (자꾸 셀카로...) 가볍게 제스처 식별기: UITApGestureRecognizer
"//
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAciont:)];"
"//
[self.rv.myImageView addGestureRecognizer:tap]; // ,self.rv.myImageView , view . , . ."
"// :
tap.numberOfTapsRequired = 1; // , ! , ."
"// n .
tap.numberOfTouchesRequired = 1; "
제스처 인식기
UILongPressGestureRecognizer * longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)];
[self.rv.myImageView addGestureRecognizer:longPress];
"// , , .
longPress.minimumPressDuration = 2;"
회전 제스처 식별기
UIRotationGestureRecognizer * rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationAction:)];
[self.rv.myImageView addGestureRecognizer:rotation];
" : .
- (void)rotationAction:(UIRotationGestureRecognizer *)sender
{
sender.view.transform = CGAffineTransformRotate(sender.view.transform, sender.rotation); // , , .
sender.rotation = 0; // , . .
}"
n .
제스처 인식기
"UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchAction:)];
[self.rv.myImageView addGestureRecognizer:pinch];"
"// , , .
- (void)pinchAction:(UIPinchGestureRecognizer *)sender
{
sender.view.transform = CGAffineTransformScale(sender.view.transform, sender.scale, sender.scale);
sender.scale = 1;
}
"
변환 제스처 식별기
UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)];
[self.rv.myImageView addGestureRecognizer:pan];
"// , ?
-(void) panAction:(UIPanGestureRecognizer *)sender
{
//
CGPoint point = [sender translationInView:sender.view];
// .
sender.view.transform = CGAffineTransformTranslate(sender.view.transform, point.x, point.y);
//
[sender setTranslation:CGPointZero inView:sender.view ];
}"
제스처 식별기를 가볍게 쓸고 제스처를 청소하려면 네 개의 다른 방향의 검측기를 설치해야 한다.
UISwipeGestureRecognizer * leftswip = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipAction:)];
[self.rv.myImageView addGestureRecognizer:leftswip];
leftswip.numberOfTouchesRequired = 1;
leftswip.direction = UISwipeGestureRecognizerDirectionLeft ;
UISwipeGestureRecognizer * rightswip = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipAction:)];
[self.rv.myImageView addGestureRecognizer:rightswip];
rightswip.numberOfTouchesRequired = 1;
rightswip.direction = UISwipeGestureRecognizerDirectionRight ;
"// , sender( ) direction( ) .
- (void)swipAction:(UISwipeGestureRecognizer *)sender
{
//NSLog(@"" "");
if (sender.direction == UISwipeGestureRecognizerDirectionDown) {
NSLog(@"" "");
}
if (sender.direction == UISwipeGestureRecognizerDirectionUp) {
NSLog(@"" "");
}
if (sender.direction == UISwipeGestureRecognizerDirectionLeft) {
NSLog(@"" "");
}
if (sender.direction == UISwipeGestureRecognizerDirectionRight) {
NSLog(@"" "");
}
}"
스크린 테두리 식별기 이것은 가볍게 청소하는 것과 마찬가지로 네 가지 방향의 검측을 제공해야 하며, 하나의 검측기로 실현할 수 없다.
UIScreenEdgePanGestureRecognizer * edge = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
edge.edges = UIRectEdgeRight;
edge.delegate = self ;
[self.rv addGestureRecognizer:edge];
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.