我希望得到一些帮助或任何我可以用来搜索的关键字。
我的问题是我有一个UIView,名为" UpdateViewController.xib"通过编程方式在这些图像下方加载20个小图像和文本。 当用户点击这些图像时,它将变为我由IB创建的下一个视图,名为" imageSumVuew.xib"我有一个链接回UpdateViewController的按钮。
#import "imageSumView.h" // next view that i wanna load//
// the transition to next view
imageSumView *nextView = [[imageSumView alloc]init];
self.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:nextView animated:YES completion:NULL];
[nextView release];
在nextView中我有类似于此的代码返回到此视图
#import "UpdateViewController.h" // old that i wanna load back//
// the transition to old view
UpdateViewController *oldView = [[UpdateViewController alloc]init];
self.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:oldView animated:YES completion:NULL];
[oldView release];
问题是当它确实加载回UpdateViewController时,我的所有图像和文本都必须重新加载。
问题是" 如何保留UpdateViewController视图的缓存?",我不希望用户重新加载图像,因为他们必须在此页面之间来回多次看看他们想要选择哪个图像。
想想Instragram,你看到你的朋友图片列表,然后你想检查你的第一个朋友的照片,然后你回到朋友的整体形象,而不加载,并选择第二个朋友。
答案 0 :(得分:0)
首次下载临时目录时,将具有唯一ID的图像数据存储到临时目录中。下次检查目录中的用户ID映像,如果有,则从那里加载映像。例如:
#define TMP NSTemporaryDirectory() NSString *filename=[NSMutableString stringWithFormat:@"userimage_%@",userId]; NSString *uniquePath = [TMP stringByAppendingPathComponent:filename]; NSData *dataImage = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrl]] UIImage *image = [[UIImage alloc] initWithData: dataImage]; [UIImageJPEGRepresentation(image, 1.0f) writeToFile: uniquePath atomically: YES]; [image release];
要获取您的图像,您可以执行以下操作:
- (NSData *) getImage: (NSString *)userId { NSString *filename=[NSMutableString stringWithFormat:@"userimage_%@,userId]; NSString *uniquePath = [TMP stringByAppendingPathComponent: filename]; if([[NSFileManager defaultManager] fileExistsAtPath: uniquePath]) { return [[NSData alloc] initWithContentsOfFile:uniquePath]; } return nil; }