使用自定义相机覆盖iPhone SDK时,图像移动和调整大小不工作3.1+
-
22-09-2019 - |
题
我曾经使用添加叠加到摄像机屏幕的老派方法,以及工作得很好。然而,因为3.1出来了,苹果坚持要我用的是API,加入重叠。我很快就覆盖工作,但似乎如果我使用自定义覆盖,那么移动和调整大小的屏幕没有响应,我只能用或重拍,实际上不能调整大小和移动。我使用的代码如下。我尝试了好几种变化,但实际上使得移动和调整大小的唯一一件事就是删除,增加了自定义重叠视图行了。
任何想法?
UIImage *image = [UIImage imageNamed:@"camera-template-long.png"];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)] ;
imgView.image = image;
UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
overlayView.opaque = NO;
[overlayView addSubview:imgView];
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = YES;
picker.cameraOverlayView = overlayView;
picker.delegate = self;
picker.allowsEditing = YES;
[self presentModalViewController:picker animated:YES];
解决方案 2
在整个问题消失,一旦你使用[overlayView setUserInteractionEnabled:NO];
从处理输入停止重叠视图。
其他提示
设置两个allowsEditing
/ showsCameraControls
属性为NO,准备原始视图到cameraOverlayView
,和使用takePicture
方法。
然后,将imagePickerController:didFinishPickingMediaWithInfo:
直接调用。
请尝试以下代码:
- (void)foo {
UIImagePickerController *controller = [[[UIImagePickerController alloc] init] autorelease];
controller.sourceType = UIImagePickerControllerSourceTypeCamera;
controller.cameraOverlayView = self.cameraOverlay;
[self performSelector:@selector(moveOverlayViewToSublayer:) withObject:controller afterDelay:0.1f];
controller.delegate = self;
[self presentModalViewController:controller animated:YES];
}
- (void) moveOverlayViewToSublayer:(UIImagePickerController*)controller {
CALayer *aLayer = self.cameraOverlay.layer.superlayer;
controller.cameraOverlayView = nil;
[aLayer addSublayer:self.cameraOverlay.layer];
}
我希望它会很好地工作。
http://www.techques.com/问题/ 1-10178214 / cameraOverlayView-防止编辑与 - allowsEditing
这完全适用于我。我试图停用userInteractionEnabled但不成功。
不隶属于 StackOverflow