代码之家  ›  专栏  ›  技术社区  ›  ap123

iPhone X摄像头未填满屏幕

  •  0
  • ap123  · 技术社区  · 8 年前

    我已经在我的应用程序中实现了一个qr扫描器,除了iphone x之外,所有设备的布局都很好。在iphonex上,导航栏和相机视图之间有一个大的白色条(其他设备上没有白色条)。我不知道是什么原因造成的。如何使相机视图占据全屏?

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

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

    这里还有一张白色条的截图(屏幕是黑色的,因为相机平放在桌子上): Screenshot

    1 回复  |  直到 8 年前
        1
  •  1
  •   Codo    8 年前

    获得白色条的主要原因是纵横比:

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

    因此,当您创建与屏幕尺寸完全匹配的视图并将相机视图添加到其中时,在顶部和底部将有一个不被相机视图覆盖的栏。

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

    其他iPhone则不受此影响,因为它们的屏幕大小为16:9,例如1334 x 750。如果你有一个ipad版本,它也应该受到这个问题的影响,并在左右两侧展示栏。

    修复它:

    • 将视图放置在导航栏下方,使其覆盖顶部的大部分栏
    • 更改背景色以获得更合适的颜色
    • 展开视图的宽度以达到16:9的纵横比并使视图居中