我试图保存转换(旋转,缩放和移动)UIImageView
并将转换加载回屏幕,但根本不起作用。每当我尝试,UIImageView
是在不同的地方,因为它应该是。转换为NSStringFromCGAffineTransform
这里是一些代码:从UserDefaults
NSUserDefaults * UserDefs = [NSUserDefaults standardUserDefaults];
UIImageView * petit = (UIImageView*)[ConView viewWithTag:1];
[UserDefs setBool:YES forKey:@"gespeichert"];
[UserDefs setObject:NSStringFromCGRect([petit frame]) forKey:@"frame"];
[UserDefs setObject:NSStringFromCGAffineTransform(petit.transform) forKey:@"position1"];
[UserDefs synchronize];
加载:
保存到UserDefaults
CGAffineTransform transformation = CGAffineTransformFromString([UserDefs objectForKey:@"position1"]);
su.transform = transformation; // "su" is an UIImageView - allocated with Frame from:
CGRect RectFrame = CGRectFromString([UserDefs objectForKey:@"frame"]);
我是怎么了? 也许有人可以帮助我。
###############
编辑: 我改变现在的代码: 对于装载
CGRect frameGroesse;
frameGroesse = CGRectFromString([UserDefs objectForKey:@"frame"]);
UIImageView * su = [[UIImageView alloc] initWithFrame:frameGroesse];
su.image = [UIImage imageNamed:@"Xcode.jpg"];
su.contentMode = UIViewContentModeScaleAspectFit;
su.multipleTouchEnabled = YES;
su.tag = 1;
[su setUserInteractionEnabled:YES];
[self addGestureRecognizersToPiece:su];
CGAffineTransform transformation = CGAffineTransformFromString([UserDefs objectForKey:@"position1"]);
su.transform = transformation;
su.center = CGPointFromString([UserDefs objectForKey:@"center"]);
[ConView addSubview:su];
[ConView bringSubviewToFront:su];
[ConView bringSubviewToFront:[ConView viewWithTag:1]];
[su release];
为了节省:
NSUserDefaults * UserDefs = [NSUserDefaults standardUserDefaults];
UIImageView * petit = (UIImageView*)[ConView viewWithTag:1];
[UserDefs setBool:YES forKey:@"gespeichert"];
[UserDefs setObject:NSStringFromCGRect([petit bounds]) forKey:@"frame"];
[UserDefs setObject:NSStringFromCGPoint(petit.center) forKey:@"center"];
[UserDefs setObject:NSStringFromCGAffineTransform(petit.transform) forKey:@"position1"];
[UserDefs synchronize];
但加载图像后,我仍然得到一个小动作。请仍需要一些帮助。
你好。感谢您的回答。我将我的代码更改为界限并添加了中心。但仍然没有得到我想要的结果。你可能有一个小例子吗? – Alex
当然,但首先解释什么是“我希望的结果”。记下你的代码,你记录的数字,你期望的数字等。 – debleek63
重新启动应用程序后,我需要重新显示图像查看完全相同的点它被保存。现在,在每次加载时,图像都是几个像素(有时更多,有时更少),远离应该的位置。日志中的位置看起来不错 - 但是视图仍然远离它保存的位置。我在这里删除了代码[链接](http://snipt.org/lgHo9)。感谢您的回答。编辑:它可能与GestureRecognizer有关?理论上的一切应该工作正常... – Alex