【问题标题】:How to get an image taken from the camera to take up the entire screen如何让相机拍摄的图像占据整个屏幕
【发布时间】:2012-02-03 16:47:54
【问题描述】:

我已将 UIImageView 拖到情节提要中的 UIViewController 窗口中。我用把手让它占据了整个窗户。我将 UIImageView 的模式设置为“Aspect Fit”。我的目标是当 iPhone 保持在与拍摄图像相同的方向时,图片占据整个窗口。

但由于某种原因,每张图片的上方和下方都有一点空间。

我还设置了导航栏和状态栏在用户使用隐藏的 UIButton 触摸图像时消失。这可以正常工作,只是当导航和状态栏重新出现时图像会向下移动。仅当我有此代码时,图像才会向下移动:

    self.navigationController.navigationBarHidden = YES;
    self.navigationController.navigationBarHidden = NO;

我用它来让导航栏在状态栏下方重新绘制,因为有时导航栏会被绘制在状态栏下方(当导航栏和状态栏同时重新出现时会发生这种情况。)

如何让我的图片全屏显示而没有这些怪癖?

编辑:

我认为这可能与此有关:

相机的纵横比是 4:3,屏幕的纵横比是 3:2。 所以根本没有办法让相机画面填满屏幕 除非你愿意裁剪到 3:2。为此,请应用 适当的比例变换。

是否可以对 uiimageview 中的图像应用仿射变换?

【问题讨论】:

    标签: iphone ios cocoa-touch


    【解决方案1】:

    您需要在您的UIViewController 实例上将wantsFullScreenLayout 设置为YES。来自documentation for wantsFullScreenLayout

    当视图控制器呈现它的视图时,它通常会缩小 查看,使其框架不会与设备的状态栏重叠。 将此属性设置为 YES 会导致视图控制器调整其大小 查看,使其充满整个屏幕,包括下方的区域 状态栏。 (当然,要做到这一点,托管 视图控制器本身必须调整大小以填满整个屏幕, 包括状态栏下方的区域。)您通常会设置 如果您有半透明状态栏,则此属性为 YES 并希望您的视图内容在该视图后面可见。

    如果此属性为 YES,则视图的大小不会以如下方式调整 使其与标签栏重叠,但调整大小以重叠半透明 工具栏。不管这个属性的值是多少,导航 控制器始终允许视图与半透明导航栏重叠。

    【讨论】:

    • 我在 viewWillAppear 中做了self.wantsFullScreenLayout = YES;,但没有任何改变,我错过了什么吗?
    • 这对你有任何意义吗?:我删除了self.wantsFullScreenLayout = YES; 行,这样它就像以前一样,并将 UIImageView 的视图模式从“Aspect Fit”更改为“Aspect Fill”,然后它实际上用完了整个窗口,不需要将 WantsFullScreenLayout 设置为 yes。但是,如果我使用“Aspect Fit”,我是否将 WantsFullScreenLayout 设置为 yes 似乎并不重要,它不会占据全屏。似乎想要FullScreenLayout 没有效果。
    • 刚刚从您的编辑中看到您正在使用相机照片。自然,它不会像您期望的那样填满屏幕。
    猜你喜欢
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    相关资源
    最近更新 更多