objective-c – UIImagePickerController的快门

objective-c – UIImagePickerController的快门,第1张

概述我有UI ImagePickerController的错误,其源类型是相机.有时控制器出现后,快门没有打开,我无法看到相机视频信号,但拍摄的照片是正确的. 可能是我做错了什么?码: if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]){ U 我有UI ImagePickerController的错误,其源类型是相机.有时控制器出现后,快门没有打开,我无法看到相机视频信号,但拍摄的照片是正确的.

可能是我做错了什么?码:

if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]){            UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];            cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;            cameraUI.allowsEditing = NO;            cameraUI.showsCameraControls = NO;            cameraUI.delegate = self;            NSArray *nibObjects = [[NSBundle mainBundle] loadNibnamed:@"OverlayVIEw" owner:self options:nil];            UIVIEw *controlsVIEw = [nibObjects objectAtIndex:0];            CGRect overlayVIEwFrame = cameraUI.cameraOverlayVIEw.frame;            CGRect controlsFrame = CGRectMake(0.0,CGRectGetHeight(overlayVIEwFrame) - 54.0,CGRectGetWIDth(overlayVIEwFrame),54.0);            controlsVIEw.frame = controlsFrame;            [cameraUI.cameraOverlayVIEw addSubvIEw:controlsVIEw];            [self presentModalVIEwController: cameraUI animated: YES];                }
解决方法 在锁定/解锁应用程序后,我发生了同样的情况,看起来快门在vIEwDIDAppear上打开.

所以,我将我的父视图控制器订阅到UIApplicationDIDBecomeActiveNotification并手动重新执行包含UIImagePickerController的控制器的vIEwWillAppear和vIEwDIDAppear方法

[[NSNotificationCenter defaultCenter] addobserver:self                                         selector:@selector(applicationBecomeActive)                                             name:UIApplicationDIDBecomeActiveNotification                                           object:nil];.. .- (voID)applicationBecomeActive {    if (imagePicker_)        [imagePicker_ openShutter];}

然后在包含UIImagePickerController的控制器上

- (voID)vIEwWillAppear:(BOol)animated {    [super vIEwWillAppear:animated];    [imagePickerController_ vIEwWillAppear:animated];}- (voID)vIEwDIDAppear:(BOol)animated {    [super vIEwDIDAppear:animated];    [imagePickerController_ vIEwDIDAppear:animated];    imagePickerController_.cameraFlashMode = cameraFlashMode_;    imagePickerController_.cameraDevice = cameraDevice_;}- (voID)openShutter {    [imagePickerController_ vIEwWillAppear:YES];    [imagePickerController_ vIEwDIDAppear:YES];}

PS:如果你试试这个,不要忘记删除观察者

[[NSNotificationCenter defaultCenter] removeObserver:self];

希望这可以帮助

总结

以上是内存溢出为你收集整理的objective-c – UIImagePickerController的快门全部内容,希望文章能够帮你解决objective-c – UIImagePickerController的快门所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1225834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存