【问题标题】:UIImagePickerController: Detecting Camera button (shutter) pressedUIImagePickerController:检测相机按钮(快门)按下
【发布时间】:2010-02-04 06:14:32
【问题描述】:

我想在用户按下相机快门后立即调用一个接收 NSNotification 的方法(即当“预览”标签栏有“重拍”和“使用”按钮时)。

我不能使用 didFinishPickingImage 方法,因为此时用户已经按下了“使用”按钮。

我已经通过 UIImagePickerController 的 cameraOverlayView 属性实现了这个(见 cmets),但我想知道是否有更快的方法来“观察”这个动作。

有什么想法吗?

【问题讨论】:

  • 你想完成什么?您可以使用自定义拍照控件并绕过标准使用/重拍控件吗?
  • 我想在用户拍照后显示警报。我试图避免使用自定义视图来提高应用在 App Store 中被接受的机会。
  • 感谢提到它的大卫,因为我的项目时间不多了,这是我的出路。所以我决定使用 SDK 3.1+ 的 cameraOverlay 功能来解决这个问题。参考:1.developer.apple.com/iphone/library/documentation/UIKit/… 2.mobile-augmented-reality.blogspot.com/2010/01/…。这是合法的,所以不用担心苹果。但是比简单的观察者方法更耗时。

标签: iphone image camera uiimagepickercontroller nsnotification


【解决方案1】:

要了解相机按钮按下事件,您可以为其触发NSNotification。

// Add observer for when camera button is pressed
NSNotificationCenter.defaultCenter().addObserver(self, selector: @selector(yourFunctionToPerform), name: "_UIImagePickerControllerUserDidCaptureItem", object: nil)

还将以下方法添加到您正在创建ImagePickerViewController 的ViewController:

-(void) yourFunctionToPerform{

    //Do what you want to do on Camera button tap event

}

我也在寻找这个问题,事件的关键/名称真的很模糊。

【讨论】:

  • 非常感谢,你真是个天才!简单且根本没有解决方法!我绝对喜欢这种方法:)
【解决方案2】:

您可以在他们选择图像后显示它。

- (void)imagePickerController:(UIImagePickerController *)picker 
        didFinishPickingImage:(UIImage *)image
                  editingInfo:(NSDictionary *)editingInfo
{
        //Display the UIAlertView
    [alertView show];
        //Just never use the image
}

如果你不想使用图像,你真的不必

【讨论】:

  • 谢谢贾巴。但真正的想法是我想在用户仍然可以快速“重拍”照片的同时抓住用户。原因:用户友好。
猜你喜欢
  • 2021-10-07
  • 2018-07-23
  • 2013-08-22
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多