UIImagePickerController 的cameraViewTransform 忽略了 iOS 10 beta 上的“缩放”和“平移”

2023-11-23

我一直在使用下面的代码来缩放 UIImagePickerController 的实时预览以填充整个屏幕。到目前为止,这一切都很完美。几天前,我在 iPhone 5 上安装了 iOS 10 beta 7,但它不再扩展了。我可以在 UIImagePickerController 视图的底部看到黑色补丁。似乎cameraViewTransform正在忽略CGAffineTransformMakeScale and CGAffineTransformMakeTranslation calls.

这就是我启动相机控制器的方式。我已将“allowsEditing”和“showsCameraControls”设置为“NO”,以便提供我自己的自定义叠加视图。

objImagePickerController =[[UIImagePickerController alloc] init];

objImagePickerController.delegate = self;
objImagePickerController.sourceType =UIImagePickerControllerSourceTypeCamera;
objImagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
objImagePickerController.allowsEditing = NO;
objImagePickerController.showsCameraControls= NO;

这就是我用来缩放相机实时预览的方法。

CGSize screenSize = [[UIScreen mainScreen] bounds].size;
float screenHeight= MAX(screenSize.height, screenSize.width);
float screenWidth= MIN(screenSize.height, screenSize.width);

float cameraAspectRatio = 4.0 / 3.0;
float imageWidth = floorf(screenWidth * cameraAspectRatio);
float scale = ceilf((screenHeight / imageWidth) * 10.0) / 10.0;

objImagePickerController.cameraViewTransform= CGAffineTransformMakeScale(scale, scale);

这就是我如何将相机视图添加为子视图而不是传统的模态呈现方法,以满足我自己的要求。

 [[[UIApplication sharedApplication] keyWindow]addSubview:objImagePickerController.view];

运行 iOS 10 beta 8 的 iPhone 5s 屏幕截图

enter image description here

运行 iOS 8.2 的 iPhone 5s 的屏幕截图

enter image description here

从上面的截图可以看出,cameraViewTransform不尊重CGAffineTransformMakeScale在 iOS 10 测试版中。

还有其他人遇到过这个问题吗?这是 iOS 10 beta 操作系统中出现的一个非常奇怪的行为。我无法找到解决方法。请指教。

注意:: objImagePickerController 是 UIImagePickerController 的一个实例。


奇怪的是它只允许我们改造它after演示文稿已完成。

Example:

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)
        }
    )

此代码将转换相机视图以匹配屏幕尺寸。

请注意,这是一种解决方法。它有效,但用户会看到它在演示时调整大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIImagePickerController 的cameraViewTransform 忽略了 iOS 10 beta 上的“缩放”和“平移” 的相关文章

  • 如何在 Xcode 构建完成时设置警报?

    我是一名懒惰的 iOS 开发人员 在一个大型 iOS 项目中工作 我已经应用了许多优化来减少项目构建时间 但每次构建都需要超过 10 12 分钟 我开始构建 有时当构建完成时 我会在桌子上睡着 有没有什么方法可以将任何语音 铃声警报与 xc
  • 签署 apple-app-site-association

    我尝试实施iOS9 Universal Links 我正在使用这个教程 http blog hokolinks com how to implement apple universal links on ios 9 http blog ho
  • 在 Interface Builder 中使用通用类作为自定义视图

    我有一个 UIButton 的自定义子类 import UIKit IBDesignable class MyButton UIButton var array String 它是 IBDesignable 我已将其设置为故事板中按钮之一的
  • ViewWillDisappear 与 dealloc

    我将 NSlog 放入视图控制器的 dealloc 方法中 它不会被一致调用 我确实注意到 ViewWillDisappear 确实总是被调用 将我所有整洁的升级代码移到这里可以吗 将东西设置为 Nil 并释放调用 有人对为什么 deall
  • UICollectionView cellForItemAtIndexPath 未注册单元格

    我正在尝试使用UICollectionViewCell 因为我想显示的只是一张图像 我可以使用将图像添加到单元格中UIColor colorWithImage on the UICollectionViewCell s contentVie
  • 在 iOS 6 中隐藏 TabBar

    我想隐藏我的 TabBariOS 6 当我编写下面给出的代码时 它可以在iOS 7但它显示黑线iOS 6 self tabBarController tabBar hidden YES 这是快照iOS 6 尝试使用下面的代码也许这会帮助你
  • “CUSTOM_APP_EVENTS”活动需要参数“custom_events”或“custom_events_file”

    从 Facebook iOS SDK 版本 3 7 1 升级到 3 8 后 通过 Facebook 对我的应用程序进行身份验证时 我开始在控制台日志中看到以下内容 FBSDKLog Error Domain com facebook sdk
  • Objective-C中如何使用后台线程?

    我试图在按下按钮时运行 while 循环 但无法按下按钮 因为 while 循环会阻塞 UI 是否有一个后台线程 我可以在其中运行 while 循环并推送UIButton 就个人而言 我会在 UI 顶部运行 HUD 活动指示器 然后在后台运
  • 是否有可用于访问 SIM 工具包的私有 API?

    我正在调查哪些 API 可用于访问 SIM 工具包 是否存在 是的 我知道任何此类 API 的使用都不允许将应用程序提交到应用程序商店 1 你可以看一下CoreTelephony框架 反汇编它 它有许多围绕 SimToolkit 的功能 例
  • 在 iOS 上自动启动 Google Authenticator 应用

    是否有支持在 iOS 上启动 Google Authenticator 的方式 我想让客户更轻松地打开应用程序并复制基于时间的代码 然后再将其粘贴回我的应用程序 我凭经验发现这个 Swift 代码将启动该应用程序 UIApplication
  • 尝试将应用程序提交到应用程序商店时出现通信错误

    我有 Xcode 5 我尝试验证我的应用程序 但发现了这些通信错误 通信故障 请使用诊断模式检查连接性 您需要具有对 TCP 端口 443 的出站访问权限 发生异常 握手期间远程主机关闭连接 调用服务方法时出错 authicateForTr
  • 我如何检查 CNContact 自上次我的 iOS 应用程序将其保存在联系人存储区以来是否已更改?

    我想将数据存储在属于以下部分的联系人存储中CNContact 有没有一个属性NSObject or CNContact我可以存储数据结构的内容或NSDate目的 我希望能够跟上CNContact最后修改 我还没有找到苹果公司给我们提供的任何
  • 如何禁用 UITextView 上的键盘?

    我在 xib 上的 iPad 应用程序中使用了文本视图 我在上面写了一些文字 现在 当应用程序运行并且用户正在阅读该文本时 如果他不小心触摸了屏幕 则会出现键盘 我想禁用键盘弹出 我该怎么做呢 尝试关闭可编辑模式 textView edit
  • 来自 IOS Xcode 的 Azure 推送通知错误

    我觉得我是世界上第一个尝试让 iOS 快速与 Azure 配合使用的人 但没有太多帮助 我跟着这个创建 iOS 应用程序 https azure microsoft com en us documentation articles app
  • 如何单击“取消”按钮退出搜索?

    我有一个带有取消按钮的搜索栏 但是当我单击 取消 按钮时 它不会关闭搜索栏 如何使单击 取消 时将搜索栏返回到第一个状态 如果您有任何疑问 请询问我 您需要实现 UISearchBarDelegate class ViewControlle
  • AWSS3GetObjectRequest ifModifiedSince 不起作用

    建设为iOS 7 建立在Xcode 6 1 使用亚马逊SDKAWSiOSSDKv2 2 0 12 测试于iPhone 5s 和 iPad 2 我正在使用适用于 iOS 的 Amazon SDK 从我的 Amazon S3 存储桶下载图像 下
  • 如何同时关闭 UIAlertController 和键盘?

    我创建了一个注册表单UIAlertController并使用了该方法addTextFieldWithConfigurationHandler添加文本字段 但有一个小问题 当表单显示时 键盘和模式会以流畅的动画出现 关闭表单时 模态消失fir
  • 在 Xcode 4 中将 iPhone 应用程序转换为通用应用程序

    我正在尝试将现有的 iPhone 应用程序项目升级为通用应用程序 但我在 Xcode 4 中找不到任何选项来执行此操作 它在哪里 接受的答案是错误的 创建新目标是指如何从 iPhone 应用程序创建单独的 iPad 应用程序 即可以编译为
  • scanForPeripheralsWithServices:options: 指定服务时无法连接

    使用 scanForPeripheralsWithServices options 时 我能够在使用时发现服务 Scanning with nil services will return all devices NSLog Looking
  • 核心音频离线渲染GenericOutput

    有人使用 core Audio 成功完成离线渲染吗 我必须混合两个音频文件并应用混响 使用 2 AudioFilePlayer MultiChannelMixer Reverb2 和 RemoteIO 成功了 我可以在预览时保存它 在 Re

随机推荐