gpt4 book ai didi

iOS UIImagePickerController 在打开时卡住

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:16 26 4
gpt4 key购买 nike

我目前正在开发一款在 iOS 6 上运行的 iPad 应用

我在我的应用程序中实现了 UIImagePickerController 的子类,它通过覆盖 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation- (NSUInteger) 强制相机处于横向)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 函数。

似乎有一个随机的机会,即在通过 presentViewController 启动图像选择器时,它会出现在相机“加载”屏幕上。那个看起来像关闭的相机快门。该应用程序将在此屏幕上卡住,除非您退出它或锁定/解锁屏幕,之后它将正常运行。

我还有一个用于相机 View 的自定义 UI。但是,我在添加之前就注意到了这个问题,所以我认为这无关紧要。

这是我必须打开选择器的内容:

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
self.modalController = [[CameraLandscapeImagePicker alloc] init];
self.modalController.delegate = self;
self.modalController.sourceType = UIImagePickerControllerSourceTypeCamera;
self.modalController.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage, nil];
self.modalController.allowsEditing = NO;
[self.viewController presentViewController:modalController animated:YES completion:nil];

//add the overlaying view ui
[self.modalController buildCustomOverlay];

self.newMedia = YES;
}

感谢任何帮助。

[编辑] - 更新:我已经设法弄清楚如何有意地复制这个问题。以下是步骤:

  • 点击我的应用程序“拍摄”按钮以加载相机
  • 退出相机界面
  • 按下 ipad 上的主页按钮
  • 点击主屏幕上的图标再次打开应用
  • 再次点击我的应用“捕获”按钮
  • 相机在快门屏幕上定格

我还注意到它甚至在连接到 xcode 时也会发生。

我修改了我的代码,以便通过单例提供 UIImagePickerController 对象。以前我每次都创建一个新的 UIImagePickerController 对象。这没有任何效果,我仍然遇到同样的问题。我已经让应用程序在快门屏幕上运行了大约 5 分钟,但它仍然卡住了。

最佳答案

我终于弄明白问题出在哪里了。

在我作为 UIImagePickercameraOverlayView 添加的自定义 UI View 中,我有一个自定义 NavigationBar View 。此 View 将其委托(delegate)设置为 UIImagePicker,并使用 retain 委托(delegate)属性。

最后是一个词从“retain”改成“assign”来解决:

@property (nonatomic,assign) id  delegate;

如果您遇到与此类似的问题,我建议您注释掉您的自定义 UI 代码的一部分,以查看到底是什么导致了问题。

关于iOS UIImagePickerController 在打开时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12889860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com