【发布时间】: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