iPhone X相机未填充屏幕

时间:2018-06-15 01:29:07

标签: swift xcode camera iphone-x

我已经在我的应用程序中实现了QR扫描仪,并且除了iPhone X之外,所有设备上的布局都很好。在iPhone X上,导航栏和摄像机视图之间有一个大的白条(没有白条在任何其他设备上)。我不确定是什么原因造成的。如何使摄像机视图占据全屏?

以下是我如何实现相机视图的大小:

video.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
view.layer.addSublayer(video)

此处还有白条的屏幕截图(屏幕为黑色,因为相机在桌面上是平的):Screenshot

1 个答案:

答案 0 :(得分:1)

获得白条的主要原因是宽高比:

  • 相机:最有可能是16:9(例如1920年为1080)
  • iPhone X :屏幕分辨率为812 x 375(逻辑)或1125 x 2436(物理)转换为约16:7.4

因此,当您创建一个与屏幕尺寸完全匹配并向其添加摄像机视图的视图时,顶部和底部会有一个未被摄像机视图覆盖的条形图。

底部栏不可见,因为您的视图似乎从导航栏下方开始,即它延伸到屏幕底部以下。

其他iPhone不受此影响,因为它们的屏幕尺寸为16:9比例,例如: 1334 x 750.如果你有一个iPad版本,它也应该受到问题的影响,并在左右两侧显示条形。

修复它:

  • 将您的视图置于导航栏下方,使其覆盖顶部的大部分栏
  • 更改背景颜色以获得更合适的颜色
  • 展开视图的宽度以实现16:9的宽高比并使视图居中