这是我发布到Apple Developer Forum的内容的复制和粘贴:
我的应用程序在iOS 6中按预期工作,但我想使用iOS 7的一些新地图功能。当我有第二个屏幕处于活动状态时,我有以下症状:
以下是第二个屏幕处于活动状态时主屏幕底部的样子:
以下是第二个屏幕的样子:
以下是第二个屏幕未激活时第一个屏幕的样子:
第二个屏幕在我的App Delegate中激活。以下是处理该问题的代码:
NSUInteger screenCount = [[UIScreen screens] count];
if( screenCount > 1 )
{
self.extScreen = [[UIScreen screens] objectAtIndex:1];
self.availableModes = [self.extScreen availableModes];
self.extScreen.currentMode = [self.availableModes lastObject];
self.extScreen.overscanCompensation = UIScreenOverscanCompensationInsetBounds;
// Size of window has changed
if( self.extWindow == nil || !CGRectEqualToRect( self.extWindow.bounds, [extScreen bounds] ) )
{
self.extWindow = [[UIWindow alloc] initWithFrame:[self.extScreen bounds]];
self.extWindow.screen = self.extScreen;
}
CGRect masterFrame = [self.extScreen bounds];
self.contentView = [[UIView alloc] initWithFrame:masterFrame];
self.ssMapView = [[SSMapView alloc] init];
[ssMapView drawInView:self.contentView];
self.contentView.clipsToBounds = YES;
[self.extWindow addSubview:contentView];
[self.extWindow makeKeyAndVisible];
}
对于我的生活,我无法弄清楚为什么第二个屏幕是黑色的,甚至更令人费解的是,为什么第二个屏幕的存在会影响键盘的外观和第一个屏幕上的当前位置标记?
如果有人知道我应该在哪里找到任何线索,我将不胜感激。如果有人认为它是相关的,我会发布更多代码。
此外,这些代码都不是特定于iOS 7的,因此我不会在NDA下发布任何内容。您在下面看到的100%来自于一个正在运行的iOS 6应用程序,该应用程序退出正常工作,因为iOS 7的编译是唯一的区别。