現在、次のコードを使用して画像を回転させています
- (void)myImageRotate:(UIRotationGestureRecognizer *)gesture
{
if(arr==nil)
{
arr=[[NSMutableArray alloc] init ];
}
if ([gesture state] == UIGestureRecognizerStateBegan || [gesture state] == UIGestureRecognizerStateChanged)
{
currentRotation =(float) [gesture rotation];
self.transform=CGAffineTransformRotate(self.transform,currentRotation);
[gesture setRotation:0];
[arr addObject:[NSNumber numberWithFloat:currentRotation]];
}
NSLog(@"Rotation Value: %f", currentRotation);
//今、すべての回転値を配列に保存し、逆配列を実行して、//最後の回転値を取得しています
NSArray *reversedArray = [[arr reverseObjectEnumerator] allObjects];
NSLog(@"Array: %@", arr);
NSLog(@"Reversed Array: %@", reversedArray);
//これで、反転配列は常に 0.0 で始まるように表示されます。回転が何であれ、値のように"、"0.01224673"、"0.006139159"、"0.006149054"、"0.01850212"、"0.01237607"、)
lastRotationValue = 0.0;
for (NSString* stringValue in [arr reverseObjectEnumerator]) {
double value = [stringValue doubleValue];
if (value != 0.0) {
//Note: 1 degree=0.0174532925 radian
lastRotationValue = value;
break;
}
}
if (lastRotationValue != 0.0) {
NSLog(@"My firstNonZeroValue of Rotation Degree:%f",lastRotationValue);
}
}
今、最後の回転値を xml ファイルに書き込んでいます。アプリを閉じて再起動すると、XML ファイルから最後の正確な値を読み取ることができます。
ただし、最後の回転値は実際の回転値ではないため、画像は最後の状態まで完全に回転していません。
そのため、ハードコードされた値と画像を完全に回転させてみました。
self.transform = CGAffineTransformMakeRotation(1.57);//By 90 Degree
したがって、画像の正確な回転値を取得するための解決策は何ですか。