【问题标题】:Is it possible to avoid the "use"/"retake" screen after taking a photo in an iOS app?在 iOS 应用中拍照后是否可以避免“使用”/“重拍”屏幕?
【发布时间】:2025-12-09 01:00:02
【问题描述】:

我聘请了一名程序员为我创建一个 iPhone 应用程序。该应用程序的目的是拍摄照片并将其上传到服务器。我们想在上传照片之前制作一个特殊用途的屏幕来查看照片。这个专门开发的屏幕将具有缩放功能。

他声称拍完照片后,不可能避免出现“使用”/“重复使用”屏幕,所以现在我们有两个屏幕来查看照片。首先是 Apple 的标准版,然后是我们自己的 zoom。他是对的吗?苹果设置这样的限制听起来太不合理了。

编辑:我的意思是用相机拍照。

【问题讨论】:

    标签: iphone ios


    【解决方案1】:

    与 Apple 的文档一样

    要执行完全自定义的图像或电影捕获,请改用 AV Foundation framework,如“媒体捕获和访问 相机”在 AV Foundation 编程指南中。创建一个 完全自定义的图像选择器,用于浏览照片库,使用 资产库框架中的类。例如,您可以 创建一个显示更大缩略图图像的自定义图像选择器, 利用 EXIF 元数据,包括时间戳和位置 信息,或与其他框架(如 Map Kit)集成。 有关详细信息,请参阅资产库框架参考。媒体 使用Assets Library framework 浏览可从 iOS 4.0

    简而言之,可以查看sample

    【讨论】:

    • 非常感谢您的回答。我已经编辑了我的问题以澄清。我的意思是用相机拍照。你的答案是否仍然适用。 Apple 的文字似乎提到,从图库中选择图像,这是一个不同的用例,我的问题可能会被误解。
    • 是的,适用于使用相机拍照。如果您曾经查看过 instagram iPhone 应用程序 (itunes.apple.com/in/app/instagram/id389801252?mt=8),您就会明白我的意思。
    【解决方案2】:

    [更新]

    在您的UIImagePickerController 上使用allowsEditing 属性

    imagePickerController.allowsEditing = NO;

    以前的答案是利用一个没有显示按钮但不是很棒的代码路径有点破解。

    [上一个答案]

    您实际上可以避免它,而无需通过 AV Foundation 设置自己的图像捕获。

    包括以下内容将消除显示“审查”屏幕的需要。您所要做的就是放入一些您自己的按钮并将它们连接到适当的功能。

    [self.imagePickerController setShowsCameraControls:NO];
    

    【讨论】:

    • 如何将它们连接起来?
    【解决方案3】:

    我知道有点晚了,但供将来参考:

    这比已经提供的答案要简单得多, 您正在寻找的是allowEditing 选项。

    imagePickerController.allowsEditing = NO;
    

    这应该足以避免在用户拍照后显示“重拍”/“使用”屏幕。

    【讨论】:

    • 不足以隐藏它。
    最近更新 更多