首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重用UIImagePickerController.cameraOverlayView

重用UIImagePickerController.cameraOverlayView
EN

Stack Overflow用户
提问于 2009-12-26 09:17:18
回答 1查看 1.8K关注 0票数 0

我有一个视图的层次结构:

有两个孩子的compView:

代码语言:javascript
复制
bgView
代码语言:javascript
复制
objectView.

我将objectView传递给UIImagePickerController的cameraOverlayView属性。一旦ImagePicker完成,我将更新bgView中的图像,并且我希望继续显示视图树,包括作为overlayView传递给UIImagePickerController的objectView。

问题是,在调用dismissModalViewControllerAnimated关闭UIImagePickerController之后,objectView没有出现,就好像UIImagePickerContoller隐藏了它一样。我检查了调试器,它似乎没有被释放。指针仍然有效。但是视图没有显示。

你知道我可能做错了什么吗?

谢谢,艾迪

下面是一小段代码,向您展示我正在做什么:

来自myViewController.m:

代码语言:javascript
复制
- (void)loadView {
 CGRect rect = self.navigationController.view.bounds;
 compView = [[UIView alloc] initWithFrame:rect];
 bgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Storage/dummy_bg.png"]];

 objectView = [[PropImageView alloc] initWithImage:[UIImage imageNamed:@"Storage/rasta.png"]];

 [objectView setUserInteractionEnabled:YES];
 [objectView setMultipleTouchEnabled:YES];
 [compView addSubview:bgView];
 [compView addSubview:objectView];
 self.view = compView;
 [self placeObject];
 [objectView release];
 [bgView release];
 [compView release];

}

- (void) placeObject
{
 NSLog(@"camera button pressed");

 // make sure camera is avaialble before setting it as source
 //

 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
#if !TARGET_IPHONE_SIMULATOR
  UIImagePickerController* picker = [[UIImagePickerController alloc] init];

  picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

  picker.delegate = self;
  picker.allowsEditing = NO;
  picker.view.hidden = NO;
  picker.cameraOverlayView = objectView;
  [self presentModalViewController:picker animated:NO];
  [picker release];

#endif
 }


// from PickImageAppDelegate.m
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
 // Dismiss the image selection, hide the picker and
 [picker dismissModalViewControllerAnimated:YES];  
 bgView.image = [self rotateImage:image byOrientationFlag:UIImageOrientationRight];
}
EN

回答 1

Stack Overflow用户

发布于 2010-11-13 08:16:48

picker dismissModalViewControllerAnimated:是;

那应该是

self dismissModalViewControllerAnimated:是;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1962372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档