首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快门上方的cameraOverlayView动画

快门上方的cameraOverlayView动画
EN

Stack Overflow用户
提问于 2011-03-26 07:23:59
回答 4查看 2.7K关注 0票数 4

我有一个透明的视图,上面用CoreGraphics绘制了一个矩形。当相机启动时,自定义覆盖视图位于快门动画之上。你看到的是标准的相机快门,上面有一个自定义的矩形。我如何让它放在正确的位置,在快门动画的下面?我看过其他示例代码,但它是针对OS3.1的,似乎没有任何不同之处。

下面是我的代码:

代码语言:javascript
复制
-(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];
}
}
EN

回答 4

Stack Overflow用户

发布于 2013-03-05 16:35:03

在iPad上,这个问题不存在,默认情况下,覆盖视图位于快门动画后面。但在iPhone上,覆盖显示在前面。

我找到了一个对我有效的解决方案。

在此方法中,您必须将覆盖视图设置为子视图:

代码语言:javascript
复制
- (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/

票数 2
EN

Stack Overflow用户

发布于 2011-03-27 02:52:43

除了你已经在做的事情,你不能做其他的事情;如果iOS决定把你的覆盖视图放在快门上,你只能接受它(除非你想冒着被应用商店拒绝的风险)。

作为一种不完美的解决方法,您可以使用alpha=0开始覆盖,然后在一两秒后将alpha设置为1。但快门在“打开”之前没有设定的时间段(我认为这取决于初始化相机硬件所需的时间),所以有时你的界面可能要到很晚才出现,有时可能出现得太早。

票数 1
EN

Stack Overflow用户

发布于 2011-05-13 07:47:26

从4.3.3开始,快门动画被打破,因为元素显示在顶部,然后在动画开始时捕捉到下方。我已经把这个作为雷达提交了:http://openradar.appspot.com/radar?id=1204401

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

https://stackoverflow.com/questions/5439130

复制
相关文章

相似问题

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