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.
아이디어가 있으십니까? 감사합니다. .
및'UIGestureRecognizerStateEnded' – rog
Matt, 답장을 보내 주셔서 감사합니다. 나는 코드와 같은 결과에 휴식을 더했다. – myData
Rog, 답장을 보내 주셔서 감사합니다.하지만 실제로 코드에서 그 휴식 시간을 보냈습니다. 그 시점 이전에 내 코드를 공유 한 것을 잘라 냈습니다. 이후로 추가했습니다. – myData