更改 UIImagePicker 纵横比
Posted
技术标签:
【中文标题】更改 UIImagePicker 纵横比【英文标题】:change UIImagePicker aspect ratio 【发布时间】:2014-03-23 15:29:27 【问题描述】:所以我尝试在我的 ios 应用中制作自定义相机。
我想让相机像 snapchats 一样全屏显示。
但我找不到任何可以帮助我将纵横比从 4:3(默认)更改为 16:9(iPhone 5 和 5s,4" 屏幕)的地方。
谁能指出我正确的方向?
【问题讨论】:
AFAIK 你必须切断零件。我猜 Aspect Fill 是正确的选择 切掉部分没问题,只是我不知道如何计算要切掉的部分? @Andyy 你找到解决办法了吗? 【参考方案1】:这里有点无耻的自我宣传,但我有一个相机项目可以做你想做的一切,而且你可以为你的项目进一步定制它。 GitHub
它会为您完成所有切割/尺寸/纵横比,同时仍然在所有设备上全屏显示。
否则,如果您不喜欢,github/cocoacontrols/其他地方还有很多其他选项。您也可以通过查看AVFoundation
【讨论】:
【参考方案2】:你需要改变UIImagePickerController的cameraViewTransform:
CGSize screenBounds = [UIScreen mainScreen].bounds.size;
CGFloat cameraAspectRatio = 4.0f/3.0f;
CGFloat camViewHeight = screenBounds.width * cameraAspectRatio;
CGFloat scale = screenBounds.height / camViewHeight;
pickerController.cameraViewTransform = CGAffineTransformMakeTranslation(0, (screenBounds.height - camViewHeight) / 2.0);
pickerController.cameraViewTransform = CGAffineTransformScale(pickerController.cameraViewTransform, scale, scale);
【讨论】:
iOS 10 似乎忽略了这个代码 sn-p,我让它在 iOS 9 上运行,但自从升级它坏了,选择器在相机视图中显示 4:3 比例以上是关于更改 UIImagePicker 纵横比的主要内容,如果未能解决你的问题,请参考以下文章