0

0도, 90도, 180도, 270도까지만 회전 할 수 있습니다. 그러나 회전 후에도 사용자가 원하는대로 회전하지 않도록하고 다시 회전 시키길 원합니다. 뷰를 자유롭게 회전하기 전에 코드를 변경하려고합니다.회전 할 때 특정 각도로 uiview를 돌려서 잠그고 다시 움직일 수 없습니다.

MYVIEW 내가 회전하고있어 내 UIView의입니다

- (IBAction)rotation:(UIRotationGestureRecognizer *)recognizer { 

    UIView *myView = recognizer.view; 
    switch (recognizer.state) { 
     case UIGestureRecognizerStatePossible: 
      break; 
     case UIGestureRecognizerStateBegan: 
      break; 
     case UIGestureRecognizerStateChanged: { 
      CGFloat rotation = [recognizer rotation]; 
      CGAffineTransform rotate = CGAffineTransformMakeRotation(rotation); 
      CGAffineTransform transform = CGAffineTransformConcat(myView.transform, rotate); 
      myView.transform = transform; 
      [recognizer setRotation:0.0];   
     } 
      break; 
     case UIGestureRecognizerStateEnded: 
     { 
      NSLog(@"state ended"); 
      CGFloat radians = atan2f(myView.transform.b, myView.transform.a); 
      CGFloat degrees = radians * (180/M_PI); 
      NSLog(@"%f",degrees); 

      if (degrees < 90.0) { 
      NSLog(@"less than 90 degree"); 

      myView.transform = CGAffineTransformMakeRotation(radians); 
      [recognizer setRotation:1.570796330]; 
      } 
     } 
     break; 
     default: 
     break; 
} 
다음

나는 시도 :

case UIGestureRecognizerStateEnded: 
    { 
     NSLog(@"state ended"); 
     CGFloat radians = atan2f(myView.transform.b, myView.transform.a); 
     CGFloat degrees = radians * (180/M_PI); 
     NSLog(@"%f",degrees); 

     if (degrees < 90.0) { 
      NSLog(@"less than 90 degree"); 

      myView.transform = CGAffineTransformMakeRotation(M_PI_2); 
     } 
    } 
     break; 
    default: 
     break; 
} 

을이 90 개도에 도착하지만 나는 더 이상 회전 할 수 있도록 거기를 고정 uiview.

아이디어가 있으십니까? 감사합니다. .

답변

1

UIGestureRecognizerStateChanged의 끝에 break을 잊어 버리는 것이 문제입니다.

+0

및'UIGestureRecognizerStateEnded' – rog

+0

Matt, 답장을 보내 주셔서 감사합니다. 나는 코드와 같은 결과에 휴식을 더했다. – myData

+0

Rog, 답장을 보내 주셔서 감사합니다.하지만 실제로 코드에서 그 휴식 시간을 보냈습니다. 그 시점 이전에 내 코드를 공유 한 것을 잘라 냈습니다. 이후로 추가했습니다. – myData