Jit*_*dra -1 objective-c uiimageview ios
我有一个4 imageview,如果点击第一个imageview图像转移到下一个可绘制视图这里用户可以使用绘图板编辑图像.用户可以在该图像上绘制线条或矩形我想将该图像保存到NSUserDefault,当用户返回第一个屏幕时,用原先选择的图像替换原始图像
将图像保存到NSUserDefault我使用了这段代码.
-(IBAction)SaveBtn:(UIBUttonSender*)sender
{
[delegate.imagesDef setObject:UIImagePNGRepresentation(previewImageView.image) forKey:@"first"];
NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"first"];
delegate.image = [UIImage imageWithData:imageData];
NSLog(@"%@",[delegate.image description]);
NSLog(@"%@",imageData);
[delegate.imagesDef synchronize];
}
Run Code Online (Sandbox Code Playgroud)
此代码可以很好地保存图像.我记录它,但当我去前一个控制器图像没有被替换
我使用此代码设置新编辑的图像.
if([delegate.imagesDef objectForKey:@"first"])
{
NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"first"];
delegate.image = [UIImage imageWithData:imageData];
NSLog(@"%@",[delegate.image description]);
NSLog(@"%@",imageData);
NSLog(@"%@",delegate.image);
FirstImageView.image=delegate.image;
}
Run Code Online (Sandbox Code Playgroud)
图像没有改变我怎么解决这个问题.
请帮我解决这个问题.
提前致谢.
你不应该在储存UIImage到NSUserDefaults.NSUserDefaults用于小块数据但不是整个图像.只需将映像写入磁盘(进入文档目录)并将路径保存到NSUserDefaults中.
加载:
NSString *pathToFile;
UIImage *image;
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:pathToFile atomically:YES];
[[NSUserDefaults standardUserDefaults] setObject:pathToFile forKey:@"image"];
Run Code Online (Sandbox Code Playgroud)
恢复:
NSString *pathToFile = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
NSData *imageData = [NSData dataWithContentsOfFile:pathToFile];
UIImage *image = [UIImage imageWithData:imageData];
Run Code Online (Sandbox Code Playgroud)
但是你为什么不直接使用属性在ViewControllers之间传递UIImage对象呢?
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |