我面临一个奇怪的问题......
在运行iOS 10
相机预览的设备上显示黑屏
但在旧版本中,它可以正常使用
我正在使用UIImagePickerController
和
self.sourceType = UIImagePickerControllerSourceTypeCamera;
我的info.plist文件:
答案 0 :(得分:3)
我用不同的方法解决了这个问题。
不要创建UIImagePickerController的子类,因为Apple不支持UIImagePickerController的子类。
重要
UIImagePickerController类仅支持纵向模式。这个 class旨在按原样使用,不支持子类化。 此类的视图层次结构是私有的,不得修改, 除了一个例外。您可以为自定义视图分配 cameraOverlayView属性并使用该视图来显示其他内容 信息或管理相机界面之间的交互 和你的代码。
这是另一种解决方案:
在UIViewController中添加此代码
self.imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; self.imagePickerController.showsCameraControls = NO; self.imagePickerController.delegate = self; [self.view addSubview:self.imagePickerController.view]; [self addChildViewController:self.imagePickerController]; [self.imagePickerController didMoveToParentViewController:self];
在所有iOS版本和设备中正常工作。 :):)
答案 1 :(得分:2)
使用UIImagePickerController()
代替任何其他初始化程序。
我遇到同样的问题,这是由于调用错误的初始化程序引起的。
答案 2 :(得分:0)
如果您使用Xcode 8,则需要将相机的隐私设置添加到info.plist以访问相机
答案 3 :(得分:0)
可能的原因可能是以下列出的原因之一,请尝试并检查它是否有帮助:
------ 尝试与主线程中显示UIImagePickerController
相关的代码:
dispatch_async(dispatch_get_current_queue(), ^(void){
//Code related to show UIImagePickerController
.....
self.imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
self.imagePickerController.showsCameraControls = NO;
self.imagePickerController.delegate = self;
[self.view addSubview:self.imagePickerController.view];
[self addChildViewController:self.imagePickerController];
[self.imagePickerController didMoveToParentViewController:self];
.....
});
-----查看info.plist>捆绑显示名称:
如果 info.plist>捆绑显示名称为空,则添加捆绑显示名称键,其值为您的应用名称。
------将相机的隐私设置设置为info.plist
以访问相机:
相机:
键:Privacy - Camera Usage Description
价值:$(PRODUCT_NAME) camera use
------不要继承UIImagePickerController
: (作为 Ankit Gupta的 回答建议)
UIImagePickerController类仅支持纵向模式。这个 class旨在按原样使用,不支持子类化。
将自定义视图分配给cameraOverlayView
属性,并使用该视图显示其他信息或管理相机界面与代码之间的交互。
参考:https://developer.apple.com/reference/uikit/uiimagepickercontroller
答案 4 :(得分:0)
也许你忘了呈现UIImagePickerController,这就是你得到空白屏幕的原因: -
<div class="group">
<label class="person-involved-name">Name</label>
<div class="textContainer"><input type="text" value="" name="nameSelect_1" id="nameSelect_1" [(ngModel)]="data.nameSelect_1" class="txt-box"></div>
</div>
<div class="group">
<label class="person-involved-aliasname">Alias Name</label>
<div class="textContainer"><input type="text" value="" name="aliasNameSelect_1" id="aliasNameSelect_1" [(ngModel)]="data.aliasNameSelect_1" class="txt-box"></div>
<div><br class="clr"></div>
</div>
答案 5 :(得分:0)
答案 6 :(得分:-1)
我遇到了同样的问题。与iOS10有点奇怪。所以我在这里提出了解决方案。即使您使用 UIImagePickerController 或使用viewController扩展它。只需创建一个UIImagePickerController的实例并将其呈现在viewDidLoad中。
UIImagePickerController * imagePickerController = [UIImagePickerController alloc];
[self presentViewController:imagePickerController animated:YES completion:nil];