- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 Imagepicker 覆盖来捕捉照片。在 iOS 9 中,我的代码运行良好,但是当我在 iOS 10 上运行我的代码时,它在底部显示了一个空间,而在 iOS 9 上没有显示。我试图解决它,但我做不到。
这是我产生问题的代码:
- (void)openCamerawithOption :(UIImagePickerControllerCameraCaptureMode)camType
{
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
[[NSOperationQueue mainQueue] addOperation:[NSBlockOperation blockOperationWithBlock:^{
[self createImagePicker:camType];
}]];
}
}
-(void)createImagePicker :(UIImagePickerControllerCameraCaptureMode)camType
{
if (!imagePickerController) {
imagePickerController = [[NonRotatableImagePickerController alloc] init];
}
//[imagePickerController.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height+(iOS7?0:20.0))];
[APPSINGLETON setBorder:imagePickerController.view color:[UIColor redColor]];
imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
imagePickerController.delegate = self;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.allowsEditing = YES;
imagePickerController.videoMaximumDuration = 60.0;
if (iOS7) {
CGSize screenBounds = APPDELEGATE.screenSize;
CGFloat cameraAspectRatio = 4.0f/3.0f;
CGFloat camViewHeight = screenBounds.width * cameraAspectRatio;
CGFloat scale = screenBounds.height / camViewHeight;
imagePickerController.cameraViewTransform = CGAffineTransformMakeTranslation(0, (screenBounds.height - camViewHeight) / 2.0);
imagePickerController.cameraViewTransform = CGAffineTransformScale(imagePickerController.cameraViewTransform, scale, scale);
} else {
float cameraAspectRatio = 4.0 / 3.0;
float imageWidth = floorf(APPDELEGATE.screenSize.width * cameraAspectRatio);
float scale = ceilf(((APPDELEGATE.screenSize.height+20.0) / imageWidth) * 10.0) / 10.0;
imagePickerController.cameraViewTransform = CGAffineTransformMakeScale(scale, scale);
}
imagePickerController.mediaTypes = [NSArray arrayWithObjects:(NSString )kUTTypeMovie, (NSString )kUTTypeImage, nil];
imagePickerController.cameraCaptureMode = camType;
imagePickerController.showsCameraControls = NO;
imagePickerController.toolbar.hidden=YES;
imagePickerController.wantsFullScreenLayout = YES;
// not all devices have two cameras or a flash so just check here
if ([UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerCameraDeviceRear])
{
imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;
}
else
{
imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceFront;
}
if ([UIImagePickerController isFlashAvailableForCameraDevice:imagePickerController.cameraDevice])
{
imagePickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
}
[self performSelectorOnMainThread:@selector(presentPicker) withObject:nil waitUntilDone:YES];
}
-(void)presentPicker
{
[self presentViewController:imagePickerController animated:YES completion:nil];
imagePickerController.cameraOverlayView = transparentView;
}
更新:
self.presentViewController(
self.imagePicker,
animated: true,
completion: {
let screenSize = UIScreen.mainScreen().bounds.size
let ratio: CGFloat = 4.0 / 3.0
let cameraHeight: CGFloat = screenSize.width * ratio
let scale: CGFloat = screenSize.height / cameraHeight
self.imagePicker.cameraViewTransform = CGAffineTransformMakeTranslation(0, (screenSize.height - cameraHeight) / 2.0)
self.imagePicker.cameraViewTransform = CGAffineTransformScale(self.imagePicker.cameraViewTransform, scale, scale)
}
)
This solution from below is working for me except when I rotate the device the same issue returns.
UIImagePickerController's cameraViewTransform is ignoring 'scaling' and 'translation' on iOS 10 beta
最佳答案
@chirag shah 我没有在 ios10 中找到 imagePicker 转换的好解决方案。我只是从我的 ios 10 项目中省略了 imagepicker,并将 AVCaptureSession 与视频重力 AVLayerVideoGravityResizeAspectFill 用于 AVCaptureVideoPreviewLayer 对象。它工作完美。
关于ios - 仅在 iOS 10 中,Imagepicker 覆盖不全屏显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39825934/
最小码: File _file; Future _pickImage() async { final image = await ImagePicker.pickImage(source: Ima
我正在从事一个涉及视频捕捉的项目。我本质上想以编程方式捕获视频,这意味着我不希望任何相机或任何东西弹出;我只想在按下两个按钮之间录制视频。 我定义了图像选择器并在按下按钮时开始视频捕获: if (UI
我在 Swift 中使用 ImagePickerSheetController。我的代码看起来像这样 controller.addAction(ImagePickerAction(title: NS
我正在尝试在 SwiftUI 中创建一个图像选择器,如下 this tutorial .基本上,这个想法是当用户点击屏幕上的灰色矩形时,会出现一个图像选择器。当他们选择一个图像时,它被导入到灰色矩形中
我正在用它来返回视频文件,但是我得到了.jpg Future getVideo() async { var video = await ImagePicker.pickVideo(
按照以下链接添加 ImagePicker https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/depend
按照以下链接添加 ImagePicker https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/depend
我正在使用正在点击“加载文件”的 WKWebView。 WKWebView 为我打开 UIImagePickerView,在此期间我需要知道 - 选择了什么图像。 最佳答案 为我工作。 overrid
我正在寻找一个自定义控件,我可以将其放入具有 UIImagePicker 功能的 UIViewController 中。 (显示缩略图,启用 multiselect 等)但显示来自“服务器”的图像(给
当我当前尝试更改属性时,收到一条错误消息,指出大小是“仅获取属性”。有人知道解决这个问题的方法吗? 最佳答案 您可以尝试以下操作(我还没有运行它,很确定它有效..) let imagePickerVi
正如标题所示,我正在尝试在您选择照片后提供更改照片的可能性。目前,如果用户不取消选择前一张照片,则无法选择另一张照片,因此我对选择多张照片不感兴趣,而只是每次触摸时都能移动光标。 fileprivat
我苦苦寻找,但找不到解决这个问题的合适方法。我正在为 iPad2 构建一个应用程序。我们公司会将 iPad2 提供给销售人员,但他们会使用配置实用程序禁用相机应用程序。 我的应用程序使用 UIImag
我正在尝试使用以下 Ionic 插件,以便我可以打开图库并选择多个图像:https://ionicframework.com/docs/native/image-picker#installation
当用户选择“选择现有”时, View 会在顶部加载并首先显示最旧的图片。但是,我希望它在底部加载以显示最近拍摄的图像。我知道这是可能的,因为这是 Apple 的 iMessage 和 Facebook
我的 iPad 应用程序仅支持横向。我已经以模态方式呈现了 ABNewPersonViewController (在导航 Controller 中作为苹果文档的建议)并且处于景观中。 现在, 当我尝试
我对应用程序的要求是在整个应用程序中显示状态栏。在某些 View Controller 上我调用图像选择器。单击 buttonImage,当当前 View Controller 消失并且相机出现时,状
我一直在努力让视频正常工作,但遇到了一个与编译器有关的奇怪问题。我的代码看起来像这样。 UIImagePickerController * imagePicker = [[UIImagePicker
我的应用程序中有一个图像选择器,可以打开用户相册 (iOS),以便他们可以选择图像。我正在使用 xamarin 跨平台,所以我有一个导致这段代码的依赖服务。之后我得到了所有正确的代码,但问题是图像选择
我正在构建一个小应用程序,允许用户选择要附加到帖子的图像。用户选择添加图像(具有点击手势识别器)并显示 iOS 照片库。然后,用户选择图像,所选图像应替换默认的相机图像。从库中选择图像时出现以下错误:
如标题所示,当使用设备的照片库从 WKWebview 选择图像时,imagePicker 似乎没有注册照片已被选中已选中。 下面是它发生的图片 这里没有太多代码。它只是简单地设置一个 WKWebvie
我是一名优秀的程序员,十分优秀!