【问题标题】:UIImagePickerController issue when zoom camera on iPad with iOS 8.1使用 iOS 8.1 在 iPad 上缩放相机时的 UIImagePickerController 问题
【发布时间】:2014-10-30 09:09:36
【问题描述】:

我在使用 iOS 8.1 的 iPad 上遇到了 UIImagePickerController 的问题。当我不使用放大相机控制时,一切正常。如果 iPad 以横向模式定向,则带有相机预览的覆盖视图将移至屏幕一侧并变为 768px 宽度。在纵向模式下一切正常。

我使用标准 Apple 示例 PhotoPicker 来显示相机控制。标准示例也有同样的问题。

我的 UIImagePickerController 初始化:

var imagePicker = new UIImagePickerController();

imagePicker.SourceType = UIImagePickerControllerSourceType.Camera;
imagePicker.AllowsEditing = false;
imagePicker.ShowsCameraControls = false;

imagePicker.CameraOverlayView = this.overlayView;
imagePicker.View.AutoresizingMask = this.View.AutoresizingMask;
this.overlayView.Frame = imagePicker.View.Bounds; // overlayView - root view in ViewController that presents camera

this.View.AddSubview(imagePicker.View);
  1. ![缩放前]http://i59.tinypic.com/2ducf37.jpg

  2. ![放大后]http://i59.tinypic.com/29b0adw.png

您有什么想法可以解决吗?我花了很多时间谷歌搜索,但没有找到解决方案。我在 xib 中尝试了 Autoresize 模式,我也尝试了 Autoresizing 掩码,但它没有帮助。

【问题讨论】:

    标签: ios ipad zooming uiimagepickercontroller ios8.1


    【解决方案1】:

    我也遇到了同样的问题。我不知道这是否对您的特殊情况有帮助,但是在进行了一些挖掘之后,我发现official Apple documentation 明确指出 UIImagePickerController 类仅支持纵向模式。这可以解释为什么相机预览不希望在方向更改后自行调整大小。

    【讨论】:

    • 是的,我找到了这个。但在我在 iOS 7.1、iOS 8.0 和 8.0.2 上运行的应用程序中,它运行良好。结果,我使用 AVCapture 重写了我的相机,并使用 Pinch 手势进行了手动缩放,因为所有带有框架、自动调整蒙版和自动布局约束的技巧都没有得到可接受的结果。
    • 图像选择器支持横向,因为内置相机应用程序旋转 ui,并且当将 ShowsCameraControls 设置为 true 时,控件按预期旋转并且缩放工作。我认为该类仅支持纵向模式的声明更多地与从图库中选择图片有关,否则该类将有些用处。我宁愿认为这是 iOS 中的一个错误。
    猜你喜欢
    • 2016-03-17
    • 2016-11-07
    • 2012-07-18
    • 2013-11-08
    • 2011-10-06
    • 1970-01-01
    • 2015-01-06
    • 2015-07-24
    • 1970-01-01
    相关资源
    最近更新 更多