【问题标题】:iPad running iPhone app stops responding when UIImagePickerController is closed (using cocos2d)当 UIImagePickerController 关闭时,运行 iPhone 应用程序的 iPad 停止响应(使用 cocos2d)
【发布时间】:2013-12-24 14:37:01
【问题描述】:

好的,所以我对如何使用 ipad 图像选择器有点困惑。我有 2 个应用程序。一种是专为 ipad 打造的高清版本。另一个是为 iPhone 构建的常规版本(必须与 iPad 兼容)。 iPad 在使用高清版本时可以正常工作,而 iPhone 在使用非高清版本时可以正常工作。但是,当我使用非高清版本的 iPad 时,相机胶卷会正常弹出,但我的场景停止响应。这几乎就像场景被暂停或什么的。

首先,我在应用内购买方法中调用选择器...

UIImagePickerController *picker    = [[UIImagePickerController alloc]init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.wantsFullScreenLayout = YES;

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
{
    NSLog(@"UIUserInterfaceIdiomPad-Does not get called in non-HD version");
    _popover = [[NSClassFromString(@"UIPopoverController") alloc] initWithContentViewController:picker];
    [_popover setDelegate:self];

    CGSize winsize = [[CCDirector sharedDirector] winSize];
    [_popover setPopoverContentSize:CGSizeMake(winsize.width,winsize.height) animated:NO];

    [_popover presentPopoverFromRect:CGRectMake(0,0,10,10)  inView:[[CCDirector sharedDirector]openGLView]
            permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}
else
{
    NSLog(@"iPhone");
    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    RootViewController *vc = delegate.viewController;

    [vc presentViewController:picker animated:YES completion:^{

    }];

    [[[CCDirector sharedDirector] openGLView] addSubview:picker.view];
}

我检查设备是 iPad 还是 iPhone。如果设备是 iPad,我使用 popover 方法显示相机胶卷。然后我关闭选择器...

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

CGSize winSize = [[CCDirector sharedDirector] winSize];
// newImage is a UIImage do not try to use a UIImageView
newImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
newCenterpiece= [info objectForKey:@"UIImagePickerControllerOriginalImage"];

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
{
    NSLog(@"UIUserInterfaceIdiomPad--Does not get called in non-HD version");
    [_popover dismissPopoverAnimated:YES];
}

else
{
    // Dismiss UIImagePickerController and release it
    NSLog(@"[picker dismissViewControllerAnimated:YES completion:^{}];)");
    [picker dismissViewControllerAnimated:YES completion:^{

    }];
    [picker.view removeFromSuperview];

}

[[CCDirector sharedDirector] startAnimation];
[[CCDirector sharedDirector] resume];...

我添加了 startAnimation 和 resume 行只是为了看看这是否导致了我的问题,但情况似乎并非如此。选择器关闭后,场景就坐在那里。我究竟做错了什么?

【问题讨论】:

    标签: ios iphone objective-c ipad cocos2d-iphone


    【解决方案1】:

    好吧,我不知道为什么会这样,但确实如此。如果我添加

    [[CCDirector sharedDirector] stopAnimation];
    

    在应用内购买方式中,代码运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2012-11-12
      • 2015-03-18
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      相关资源
      最近更新 更多