在我的UIView中,用户可以放置不同的UIImages。 用户可以移动和旋转这些图像。
图像,类型,位置保存在一个数组中以便以后恢复。
我也想保存口粮度。
是否可以读出旋转图像的程度? 或者我必须在图像旋转时保存度数吗?
谢谢
答案 0 :(得分:1)
只要记住它旋转时的旋转 - 为什么要让它更复杂?
答案 1 :(得分:0)
以下是旋转完成并保存的代码,但我的工作效果不是很好。
- (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;
然后我有用户旋转图像的程度?