Я пытаюсь сохранить преобразованное (повернутое, масштабированное и перемещенное) UIImageView
и загрузить преобразования обратно на экран, но это не работает вообще. Каждый раз, когда я пытаюсь, UIImageView
находится в другом месте, как и должно быть.
Вот код:
Сохранение в 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"]);
Что я не так сделал?
Может быть, кто-то может мне помочь.
# # # # # # # # # # # # # # #
Edit:
Я изменил код сейчас:
Для загрузки
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];
Но после загрузки изображения я все еще получаю небольшое движение. Все еще нужна помощь, пожалуйста.