고양이 학 IOS (36) UI 의 손짓 이벤트 회전크기 조정끌다

고양이
오리지널 글, 전재 환영.적 내 옥 의 블 로그 주소:http://blog.csdn.net/u013357243?viewmode = contents 원본 코드:http://blog.csdn.net/u013357243/article/details/45560213
효과.
그림 의 압축 크기 조정, 드래그, 회전 동작 을 완성 합 니 다.
디자인 아이디어
드래그:
일단 제일 쉬 운 드래그.
//  
-(void)panTest
{
    UIPanGestureRecognizer  *pan = [[UIPanGestureRecognizer alloc] init];
    [self.iconView addGestureRecognizer:pan];

    [pan addTarget:self action:@selector(panView:)];
}

- (void)panView:(UIPanGestureRecognizer *)pan
{
    //                
    // 1 2 3 4 5
    CGPoint point = [pan translationInView:pan.view];

    NSLog(@"     %@", NSStringFromCGPoint(point));
    CGPoint temp = self.iconView.center;

    temp.x += point.x;
    temp.y += point.y;
    self.iconView.center = temp;

    //         OK
    [pan setTranslation:CGPointZero inView:pan.view];
}

회전:
- (void)rotationTest
{
    //   
    UIRotationGestureRecognizer *gesture = [[UIRotationGestureRecognizer alloc] init];
    gesture.delegate = self;

    [self.iconView addGestureRecognizer:gesture];
    [gesture addTarget:self action:@selector(rotationView:)];
}

- (void)rotationView:(UIRotationGestureRecognizer *)gesture
{
    // NSLog(@"     %.1f", gesture.rotation);


    //           
    // self.iconView.transform = CGAffineTransformMakeRotation(gesture.rotation);

    //     transform         
    self.iconView.transform = CGAffineTransformRotate(self.iconView.transform, gesture.rotation);
    //         (              ,               )
    gesture.rotation = 0;//        ,    OK
}

활용 단어 참조
- (void)pichTest
{
    //     
    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] init];
    pinch.delegate = self;

    [self.iconView addGestureRecognizer:pinch];
    [pinch addTarget:self action:@selector(pinchView:)];
}


- (void)pinchView:(UIPinchGestureRecognizer *)pinch
{
    //    NSLog(@"     %.1f", pinch.scale);
    //    self.iconView.transform = CGAffineTransformMakeScale(pinch.scale, pinch.scale);
    // 1.0 * 0.9
    self.iconView.transform = CGAffineTransformScale(self.iconView.transform, pinch.scale, pinch.scale);

    pinch.scale = 1.0;
}

회전 과 크기 조정
이렇게 하면 한 제스처 만 사용 할 수 있 고, 동시에 회전 과 크기 조정 을 할 수 있 도록 에이 전 트 를 추가 하여 여러 제스처 를 판단 할 수 있 습 니 다.대 리 를 실현 해 야 한다.
    @interface NYViewController ()<UIGestureRecognizerDelegate>
//       BOOL    view            
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    NSLog(@"%@ - %@", gestureRecognizer.class, otherGestureRecognizer.class);
    return YES;
}

주의:
그리고 또 주의해 야 할 점 이 있어 요.
UIImageView 는 이 두 개 를 체크 해 야 상호작용 이 가능 합 니 다.
猫猫学IOS(三十六)UI之手势事件旋转_缩放_拖拽_第1张图片
중간 에 있 는 알고리즘 같은 것 은 더 이상 말 하지 않 겠 습 니 다. 앞의 블 로그 에 그 려 진 그림 이 있 습 니 다. 여러분 이 관심 이 있 는 것 은 보 실 수 있 습 니 다.어차피 고양 이 는 직접 가 져 다 쓰 거나 느낌 으로 맞 히 는 경우 가 많다.

좋은 웹페이지 즐겨찾기