- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我在调用 UIImagePickerController 以使用相机时遇到问题。有时,但通常情况下,预览屏幕显示为黑色(因为相机本身被遮盖了)。在做了一些研究之后,似乎人们没有正确地委派它……但是,我相信我的设置是正确的。重新启动应用程序即可解决问题。
在我的 .h 文件中,我包含了 UIImagePickerControllerDelegate 和 UINavigationControllerDelegate。
这是 .m 文件的代码
- (IBAction)camera:(id)sender {
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
#if TARGET_IPHONE_SIMULATOR
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
#else
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
#endif
imagePickerController.editing = YES;
imagePickerController.delegate = self;
[self presentViewController:imagePickerController animated:YES completion:nil];
}
关于为什么会发生这种情况有什么想法吗?
谢谢
最佳答案
我刚和这个问题纠缠了一天半,果然我在主线程之外做了一些 UI 相关的事情。在我的例子中,我正在为异步 Web 服务调用更新响应处理代码中的标签。
在一个有多个 View Controller 的应用程序中,每个 View Controller 都有 2000 多行代码,这种事情很难追踪。这就是我最终得出答案的原因,而且很快就给出了答案。
https://gist.github.com/steipete/5664345
这个人发布了一个类,您可以下载并添加到您的项目中。只需将其添加到您的项目中,您无需在任何地方使用它或尝试在任何地方实例化,只需将其添加到您的项目中即可。他还指出你应该在没有 ARC 的情况下运行它。为此,转到“构建阶段”选项卡,展开“编译源”,双击该文件,然后键入 -fno-objc-arc
现在,运行您的项目并导航到您遇到黑色图像预览屏幕的位置。如果一切按计划进行,在此之前的某个时刻,您的应用程序应该崩溃并转储以控制台一些有关在主线程外执行 UIKit 操作的信息。根据您的应用程序正在做什么以及转储到控制台的内容,您应该能够很快找到导致您遇到麻烦的代码行。在我的例子中,我能够使用
调用我的响应处理程序[self performSelectorOnMainThread:@selector(handleResponse:) withObject:data waitUntilDone:true];
我的问题马上就解决了
此外,此问题仅在我更新到 iOS 7 后才出现,我从未在 iOS 5 或 iOS 6 中看到过。
发布该文件的人建议您在发布您的应用时不要将此文件包含在您的项目中,我非常同意这一点。
调试愉快!
关于ios - UIImagePickerController 显示黑色预览屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18675672/
我有一个 UIImagePickerController 和一个 cameraOverlayView,但是当用户拍照时,cameraOverlay View 会保留在“预览/使用照片/重拍照片 Vie
我试过将 Info.plist 'View controller-based status bar appearance' 设置为 NO,我试过调用 [[UIApplication sharedApp
我正在尝试快速使用 UIImagePickerController 但不起作用... 我的 View Controller : class ViewController: UIViewControll
我的 UIImagePickerController 有问题,allowEditing = YES。 我无法从底部裁剪图像,但在移动裁剪矩形时,顶部还有一个额外的空白空间。 也在方法中。 -(void
为什么当 UIImagePickerController 处于视频模式时,AVFoundation 显示的缩放级别与 UIImagePickerController 相同?如何使 AVFoundati
我正在开发一个应用程序,我必须使用图像选择器 Controller 从手机库导入图像。问题是我必须首先关闭选择器 Controller ,然后在选择器 Controller 关闭后呈现另一个 Cont
我的以下代码在 swift 4 上运行良好,但在升级到 swift 4.2 后出现此错误,我浪费了 3 个小时搜索问题所在但失败了。如果有人能指导我如何解决这个问题,请多多指教。 func image
所以我正在尝试为 iOS 7 更新一个应用程序,但我遇到了自定义叠加层的问题。叠加层是我用来构图的图像(实时和使用全分辨率版本在相机胶卷中构图最终结果)。问题是,现在在 iOS 7 下,覆盖层虽然在底
我正在使用 UIImagePickerController 捕获图像然后存储它。但是,当我尝试重新缩放它时,我从该图像中获得的方向值不正确。当我拿起手机拍照时,它给了我左边的方向。有没有人遇到过这个问
我注意到 UIImagePicker 为相机胶卷返回的 NSDictionary 似乎不再返回 UIImagePickerControllerOriginalImage 对象。相反,我得到了一个 UI
我有一个简单的标准图像选择器,它工作正常,但当我使用编辑器功能时,图像会移动到方形裁剪框上方。当我选择图像或调整图像大小然后接受它时,裁剪后的图像在裁剪框上方有大约 20 个像素的图像,底部有大约 4
我的应用程序允许用户从设备的相机胶卷中选择图像。我想验证所选图像的格式是 PNG 或 JPG 图像。 是否可以在 - (void)imagePickerController:(UIImagePicke
是否可以保存视频并将其添加到自定义 ALAsset,以 mp4 格式从 UIImagePicker 捕获?或者我必须将它保存在 .mov 中并通过 AVAssetExportSession 进行压缩?
似乎内置的 UIImagePickerController 无法接受除设备相机卷以外的来源。 我想在我自己的应用程序中获得选择和放大图片的功能。另外我想允许用户选择图片并将其保存到他们的相机胶卷中(以
我想在呈现 UIImagePickerController 拍照时隐藏显示快门打开的动画。我检查了this question对于包含已接受的内容的相同内容,但我无法在我的 Controller 中复制
我想 UIImagePickerController 会允许您使用相机或从 View 中的库中进行选择?看来我必须选择一个或另一个 cia 的 sourceType?有没有办法在选择库 View 中添
我试图在 UIActionSheet 中单击按钮后显示 UIImagePickerController。代码很简单。但是,对 [[UIImagePickerController alloc] init
我搜索了一些在我的应用程序中使用 UIImagePickerController 的方法,我发现唯一有效的方法如下: 在应用程序显示的第一个 View 上,输入: self.picker = [[UI
UIImagePickerController 很容易使用,但是当我以前没有发现它时,我突然发现它很令人恼火。发生的情况是,有时 imagePickerController:didFinishPick
我有以下代码: SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondVie
我是一名优秀的程序员,十分优秀!