【问题标题】:UIImagePickerController Issue in iPhone?iPhone中的UIImagePickerController问题?
【发布时间】:2014-03-28 11:03:00
【问题描述】:

嘿,我是iPhone 的新手,我一直在尝试使用ARC 制作一个画廊类型的应用程序。我正在使用UIImagePickerController 从相机捕获图像。有时当我点击相机按钮时..然后它工作正常但有时它显示如下截图所示的预览屏幕,然后用户必须点击UIImagePicker预览取消按钮并再次点击相机按钮以成功捕获图像。 .谁能告诉我我遇到这个问题的原因?

这是我的代码:

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
imagePickerController.allowsEditing = YES;
imagePickerController.sourceType = sourceType;
[self presentViewController:imagePickerController animated:YES completion:nil];

感谢您的帮助。

【问题讨论】:

  • 您没有设置源类型。

标签: ios iphone camera uiimagepickercontroller


【解决方案1】:

您的代码看起来不错,但我知道 UIImagePicker 会消耗资源。

我认为只进行一次实例化会更优化。把它放在你的 viewWillAppear 方法中:

self.imagePickerController = [[UIImagePickerController alloc] init];
self.imagePickerController.delegate = self;
self.imagePickerController.allowsEditing = YES;
self.imagePickerController.sourceType = sourceType;

然后当你想展示它时使用:

[self presentViewController:self.imagePickerController animated:YES completion:nil];

我注意到以这种方式呈现它要快得多。让我知道它是否解决了您的问题。

【讨论】:

  • @foOg感谢您的快速回复..我将应用您的解决方案..我可以提供所有代码以在 dispatch_get_main_queue 中呈现 UIImagePickerController,然后它会起作用吗?
  • 我认为你不需要在 main_queue 上调用它,我从来不需要这样做。它似乎框架已经确保它将在主线程上完成
  • @foOg 我在使用位于此处的 phonegap 相机插件代码时遇到了同样的问题:github.com/apache/cordova-plugin-camera/blob/master/src/ios/…。你知道我如何调整这段代码来使用这个解决方案吗?
  • CDVCameraPicker 继承自 UIImagePickerController。我不熟悉phonegap,但我给出的解决方案也应该适用于phonegap。只需将您的 CDVCameraPicker 声明为一个属性,然后在您的类的 viewDidLoad 或 init 方法上实例化一次即可。
  • 非常感谢您的帮助。我对 Objective-C 不是很熟悉,但我会尽力实现它并看看它是如何工作的。
【解决方案2】:

对于相机用户这些

 _imgPickerController = [[UIImagePickerController alloc]init];
[_imgPickerController setDelegate:self];
[_imgPickerController setSourceType:UIImagePickerControllerSourceTypeCamera];
 _imgPickerController.showsCameraControls = YES;
[self presentViewController:_imgPickerController animated:NO completion:Nil];

别忘了导入这两个代表

UIImagePickerControllerDelegate and UINavigationControllerDelegate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    相关资源
    最近更新 更多