ios - 动态居中的 UIImagepicker 取景器已放大至全屏

标签 ios objective-c iphone ios8 uiimagepickercontroller

我正在为 iPhone 5 制作一个全屏摄像头,并使用以下代码来缩放 4:3 摄像头以填充整个屏幕,即 2:3 比例。左右两侧从屏幕上溢出。

我必须将cameraView向下移动71点才能使其与屏幕居中。否则,底部会有一个黑条。我不太清楚为什么。因为我不知道为什么会发生这种情况,所以我无法弄清楚如何动态编码调整以适应 iPhone 6 和 6 Plus。

感谢任何帮助。

// get the screen size
CGSize screenSize = [[UIScreen mainScreen] bounds].size;

// establish the height to width ratio of the camera
float heightRatio = 4.0f / 3.0f;

// calculate the height of the camera based on the screen width
float cameraHeight = screenSize.width * heightRatio;

// calculate the ratio that the camera height needs to be scaled by
float ratio = screenSize.height / cameraHeight;

//This slots the preview exactly in the middle of the screen by moving it down 71 points (for iphone 5)
CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0, 71.0);
self.camera.cameraViewTransform = translate;

CGAffineTransform scale = CGAffineTransformScale(translate, ratio, ratio);
self.camera.cameraViewTransform = scale;

最佳答案

这终于在我脑海中响起了。因为我们知道相机的长度始终与屏幕宽度相同:

//按4:3比例获取相机高度

int cameraViewHeight = SCREEN_WIDTH * 1.333;

int adjustedYPosition = (SCREEN_HEIGHT - cameraViewHeight) / 2;

CGAffineTransform translate = CGAffineTransformMakeTranslation(0, adjustedYPosition);
self.imagePicker.cameraViewTransform = translate;

关于ios - 动态居中的 UIImagepicker 取景器已放大至全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727552/

相关文章:

ios - 禁用自动布局时为 "Unable to simultaneously satisfy constraints"

iphone - OCUnit 测试 NSNotification 传递

ios - 使用 iOS 11 约束导航栏中的 UIBarButtonItem 大小

ios - SVProgressHUD 在模态视图的背景中显示

ios - 如何从适用于 Azure Mobile Engagement 的 iOS 应用程序获取正确的设备 ID(显示在门户中)

iphone - 如何制作 iPhone/iPad 上可滚动的半圆形菜单?

iphone - Instruments 总是为具有自动化功能的通用应用程序推出 iPad 模拟器,我如何强制它使用 iPhone 模拟器?

iOS 使用 XEP-0191 阻止用户

ios - 当关闭 View Controller 时,将 UICollectionView 的选定状态保存在 UITableViewCell 中

ios - 无法加载 bundle 中的 NIB。 cocoa pod 项目