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

cameraOverlayView不适用
EN

Stack Overflow用户
提问于 2014-04-30 21:52:40
回答 1查看 273关注 0票数 0

当我尝试将cameraOverlayView应用到UIImagePickerController时,它不会出现。我已经阅读了一些关于如何应用这一点的文档,我的代码看起来都是正确的。如果有人能解释为什么我的覆盖还没有开始的话,我真的会理解的。

代码语言:javascript
复制
//Start the camera up

UIImagePickerController *imageViewPickerController = [[UIImagePickerController alloc] init];

//Hide default UI elements

imageViewPickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imageViewPickerController.showsCameraControls = NO;
imageViewPickerController.navigationBarHidden = YES;
imageViewPickerController.toolbarHidden = YES;

//Start the button overlay

UIView *btnView = [[UIView alloc] initWithFrame:imageViewPickerController.view.bounds];
btnView.backgroundColor = [UIColor whiteColor];
btnView.alpha = 0.3;
btnView.clipsToBounds = YES;

//Add a button to the overlay

UIButton *snapButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 1024, 1024)];
snapButton.backgroundColor = [UIColor blackColor];
[btnView addSubview:snapButton];

//Overlay button view

imageViewPickerController.cameraOverlayView = btnView;

//Fix for iPhone 5 and make fullscreen

CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0, -55.0);
CGAffineTransform scale = CGAffineTransformMakeScale(1.333333, 1.333333);
CGAffineTransform rotate = CGAffineTransformMakeRotation(DEGREES_RADIANS(180));
CGAffineTransform transform = CGAffineTransformConcat(translate, scale);
transform = CGAffineTransformConcat(transform, rotate);
imageViewPickerController.cameraViewTransform = transform;

//Let's present it all

[self presentViewController:imageViewPickerController
                   animated:NO
                 completion:NULL];

解决办法:

我找到了解决方案:它既合并了Visput的建议,又合并了fguchelaar的,然后我删除了btnView.alpha = 0.3,用btnView.opaque = NO;替换了它,这就成功了。混乱的颜色,现在我的覆盖是完美的工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-30 22:02:26

覆盖视图的框架大小为零:

代码语言:javascript
复制
UIView *btnView = [[UIView alloc] initWithFrame:CGRectZero];

像这样改变它,你就会看到它:

代码语言:javascript
复制
UIView *btnView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 1024];

更新:

还启用clipsToBounds标志:btnView.clipsToBounds = YES;

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

https://stackoverflow.com/questions/23398654

复制
相关文章

相似问题

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