NSUserDefaults - 保存UIImageView位置

时间:2013-06-29 19:20:30

标签: ios uiimageview loading nsuserdefaults

在我的应用程序中,我有一个UIImageView和一个UIButton。 UIImageView有一个UIPanGestureRecognizer,可以在屏幕上拖动。我写了:

int defaultBallLocation = ball.center; 在我的- (IBAction)saveButton

和Xcode说“无法将CGPoint与int关联”。

那么,如何通过按“保存”在屏幕上保存球(UIImageView)位置,然后通过NSUserDefaults按“加载”加载保存的位置?我以前曾使用NSUserDefaults,但只使用了UISegmentedController。谢谢!

2 个答案:

答案 0 :(得分:3)

另一个选项,您可以将其存储为字符串:

NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
// Set
[userDefaults setObject:NSStringFromCGPoint(yourPoint) forKey:@"pointPosition"];
// Save
[userDefaults synchronize];
// Get
CGPoint thePoint = CGPointFromString([userDefaults objectForKey:@"pointPosition"]);

答案 1 :(得分:1)

您正在尝试为int分配一个CGPoint结构,这是不可能的。

要将其保存到NSUserDefaults,您可以执行以下操作:

CGFloat x = ball.center.x;
CGFloat y = ball.center.y;

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setFloat:x forKey:@"x"];
[defaults setFloat:y forKey:@"y"];