Разрешение вашего defult.png может влиять на ориентацию ваших приложений, если вы заблокировали ориентации.
Например, если используется изображение-всплеск 1024x768, и начальный вид не поддерживает портретный просмотр через ориентационные блокировки, этоможет привести к тому, что объекты визуального пользовательского интерфейса будут отображаться за пределами экрана (особенно когда задействована анимация), поскольку представление будет пытаться представить себя в портретной конфигурации, даже если устройство может быть в альбомной ориентации.
Как правило, изображения 1024x768 подразумевают портретную, аИзображения 768x1024 подразумевают альбомную ориентацию.
Если этого недостаточно, или вы хотите плавно перейти от исходного изображения по умолчанию, например, к экрану входа в систему, то вы можете использовать контроллер представления для «продолжения» всплеска.
Загрузите все обычные viewController в окно, затем вставьте свой всплеск viewController, затем в свой splashController используйте метод shouldAutorotateToInterfaceOrientation
для установки правильного изображения (на ImageViewController):
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Overriden to allow any orientation.
switch ([[UIDevice currentDevice] orientation])
{
case UIInterfaceOrientationLandscapeRight:
splashImage.image = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"Default"] ofType:@"png"]];
break;
case UIInterfaceOrientationPortrait:
splashImage.image = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"Default"] ofType:@"png"]];
break;
default:
splashImage.image = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"Default2"] ofType:@"png"]];
break;
}
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
Конфигурация изображений, которые я использовал, можетне подходит вам, так что некоторые эксперименты могут быть необходимы.