【发布时间】:2011-12-12 13:45:34
【问题描述】:
我最近在检查here 找到的“演示照片板”项目。
这是一个将 UIImageViews 添加到添加了 UIGestureRecognizers 的屏幕的简单演示......允许用户操作各种 UIImageViews。
我像这样添加视图:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)];
imageview.userInteractionEnabled = YES;
[imageview setImage:image];
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)];
[pinchRecognizer setDelegate:self];
[imageview addGestureRecognizer:pinchRecognizer];
UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotate:)];
[rotationRecognizer setDelegate:self];
[imageview addGestureRecognizer:rotationRecognizer];
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
[panRecognizer setDelegate:self];
[imageview addGestureRecognizer:panRecognizer];
[self.view addSubview:imageview]; }
我什至可以像这样保存视图:
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSKeyedArchiver archivedDataWithRootObject:imageview] forKey:@"imageViewSaved"];
现在我的问题:以下方法仅保存添加到屏幕的最后一个图像视图。任何人都知道如何保存屏幕上的所有图像视图...如果用户添加多个?
【问题讨论】:
-
你不能像第一个 imageView 那样做吗?我不太确定我是否完全理解了您的问题,您是在问如何归档添加到您的视图中的多个 imageView?
-
我提供的示例允许用户在每次从照片库中选择照片时将 uiimageview 添加到屏幕上。所有这些图像视图本质上都是“图像视图”(参见上面的代码)。我无法弄清楚的是如何区分这些不同的图像视图。目前它只保存添加的最新视图......即使屏幕上也有其他 uiimageviews。我想我可以在每次选择其他照片时在新的 uiimageview 中编码,但是我必须限制允许添加多少 uiimageview。
标签: objective-c uiimageview persistence nskeyedarchiver