我有一个透明 View ,其中使用 CoreGraphics 在其上绘制了一个矩形。
当相机启动时,自定义叠加 View 位于快门动画上方。
您看到的是标准相机快门,上面有自定义矩形。
如何让它在正确的位置,在快门动画下方?我查看了其他示例代码,但它适用于 OS 3.1,似乎并没有做任何不同的事情。
这是我的代码:
-(IBAction)cameraButton{
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerCameraDeviceRear]){
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
//Add the OverlayView with the custom Rectangle
CGRect overlayFrame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
OverlayView *overlayView = [[OverlayView alloc]initWithFrame:overlayFrame];
picker.cameraOverlayView = overlayView;
[overlayView release];
[self presentModalViewController:picker animated:YES];
[picker release];
}
}
最佳答案
在 iPad 上不存在此问题,并且默认情况下叠加 View 位于快门动画后面。但在 iPhone 上,覆盖层出现在前面。
我找到了一个对我有用的解决方案。
您必须在此方法中将叠加 View 设置为 subview :
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (!viewController)
return;
UIView* controllerViewHolder = viewController.view;
UIView* controllerCameraView = [[controllerViewHolder subviews] objectAtIndex:0];
UIView* controllerPreview = [[controllerCameraView subviews] objectAtIndex:0];
[controllerCameraView insertSubview:self.overlayView aboveSubview:controllerPreview];
}
希望能帮助到你
原始来源:
http://www.alexcurylo.com/blog/2009/06/18/uiimagepickercontroller-in-3-0/
关于iphone - 快门动画上方的cameraOverlayView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5439130/