读出旋转的UIImage的半径

时间:2015-12-10 22:29:30

标签: ios rotation uiimage

在我的UIView中,用户可以放置不同的UIImages。 用户可以移动和旋转这些图像。

图像,类型,位置保存在一个数组中以便以后恢复。

我也想保存口粮度。

是否可以读出旋转图像的程度? 或者我必须在图像旋转时保存度数吗?

谢谢

2 个答案:

答案 0 :(得分:1)

只要记住它旋转时的旋转 - 为什么要让它更复杂?

答案 1 :(得分:0)

@TheEye:不是真的。 我认为在链接中有解决方案。但我愚蠢地让它适应我的应用....

以下是旋转完成并保存的代码,但我的工作效果不是很好。

- (IBAction)rotateImage:(UIRotationGestureRecognizer *)sender {
    snap = 0;
    NSMutableDictionary *itemDSNew = [[NSMutableDictionary alloc] init];
    NSDictionary *itemDSOld = (NSDictionary *)[messestandItems objectAtIndex:aktivItemID];

    if (messestandItems.count > 2) {
        CGFloat netRotation = [[itemDSOld objectForKey:@"rotation"] floatValue];
        CGFloat rotation = [(UIRotationGestureRecognizer *)sender rotation];
        CGAffineTransform transform = CGAffineTransformMakeRotation(rotation+netRotation);
        aktivImageView.transform = transform;

        if (sender.state==UIGestureRecognizerStateEnded) {
            netRotation += rotation;
            }
        [itemDSNew addEntriesFromDictionary:itemDSOld];
        [itemDSNew setObject:[NSString stringWithFormat:@"%f", aktivImageView.center.x] forKey:@"posX"];
        [itemDSNew setObject:[NSString stringWithFormat:@"%f", aktivImageView.center.y] forKey:@"posY"];
        [itemDSNew setObject:[NSString stringWithFormat:@"%f", rotation + netRotation] forKey:@"rotation"];
        [itemDSNew setObject:[NSString stringWithFormat:@"0"] forKey:@"snap"];
        [messestandItems replaceObjectAtIndex:aktivItemID withObject:itemDSNew];
        [messestandItems writeToFile:[self saveFilePath] atomically:YES];
        }
}

这是我的代码旋转45°:

float rad = M_PI * (float)45 / 180.0;
aktivImageView.transform = CGAffineTransformRotate(aktivImageView.transform, rad);

但是当我稍后在应用程序中想知道变换(rad)时的代码是什么

类似的东西:

rad = aktivImageView.transform;
float degree = rad * 180 / M_PI;

然后我有用户旋转图像的程度?