2012-10-29 3 views
2

iOS 애플리케이션에 스플래시 화면 즉, 기본 이미지 (앱 실행 제외)가 표시되는 경우는 무엇입니까?iOS 멀티 태스킹의 스플래시 화면

나는 사용자가이보기에와 배경에 응용 프로그램을 못살게 굴지 만

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
} 

경우 가로 모드를 지원 한 후 다시 가져옵니다 뷰 컨트롤러를 강제하고, 응용 프로그램은 < 1 초 동안 시작 화면을 보여줍니다.

다른 경우에는 UIAlertView가 열려 있고 응용 프로그램을 백그라운드로 밀고 다시 가져 오면 응용 프로그램이 잠깐 동안 스플래시 화면을 표시합니다.

UIKit 문서에서 이에 대한 설명이 있으며 iOS의 멀티 태스킹이 사용자에게 잠시 동안 Splash 화면을 표시하는 시나리오는 무엇입니까?

감사합니다.

예와 업데이트 질문 : 우리가 설정 (처음으로) 신청 가면

-> 아이튠즈 & 앱 스토어를 -> AppleId에 눌러 : 행 -> 당신이 alertView 나타납니다 -> 앱을 배경으로 가져 가려면 홈 버튼을 누릅니다. -> 앱을 다시 가져옵니다. 이전에 화면이 표시되기 전에 1 초에 < 설정 응용 프로그램의 Default.png를 관찰하게됩니다.

+0

"스플래시 화면"이라고 말하면 'Default.png'을 말하고 있습니까, 아니면 앱용으로 제작 한 것을 말하는 것입니까? – Till

+0

Default.png – 0x8badf00d

+0

이 앱이 아직 실행되지 않고 시작된 경우에만 표시됩니다. – Till

답변

9

시스템 (스프링 보드)은 앱 스냅 샷을 관리합니다. 앱을 종료하면 스냅 샷이 내부에 png 파일로 기록됩니다. Library/Caches/Snapshots/com.yourcompany.yourapp/[email protected]

앱을 다시 실행하면 SpringBoard는 앱이 매우 빠르게 깨어 난 것처럼 느껴지도록 파일을 읽고 표시하려고 시도합니다. 해당 스냅 샷 파일을 읽을 수 없으면 대신 Default.png이 표시됩니다.

나는 앱을 매우 빨리 종료하고 다시 시작한 경우에만 Default.png이 표시됩니다. 앱을 다시 시작하기 전에 1 ~ 2 초 정도 기다리면 시스템에 스냅 샷을 쓸 시간이 있고 Default.png이 표시되지 않습니다.

시스템 프로세스가 스냅 샷 표시를 관리하기 때문에 Default.png이 잠시 나타나지 않도록 앱에서 아무 것도 할 수 없습니다.

+2

이상한 부분은 현재 팝업이 표시되면 스크린 샷을 저장하는 데 시스템이 훨씬 오래 걸리는 것입니다. 또한이 경우 스크린 샷은 alertView없이 생성됩니다. 아마도 그렇게 오래 걸리는 이유입니다. 큰 차이가 있습니다. – calimarkus

+0

@ 0xced 훌륭한 대답입니다. 감사. – 0x8badf00d

1

Default.png는 앱이 처음부터 시작될 경우에만 표시됩니다. 이것은 처음을 의미하거나 마지막으로 열렸 기 때문에 완료되었습니다.

방금 ​​표준 응용 프로그램을 실행하면 시스템에서 닫히거나 (메모리가 너무 적기 때 문에) 또는 멀티 태스킹 막대를 통해 사용자가 시작할 때까지 처음 시작시 Default.png가 표시됩니다.

+0

예를 통해 제 질문을 업데이트했습니다. 좀 봐 주 시겠어요? 감사합니다, – 0x8badf00d

+0

그게 재미 있어요 - 전에는 그것을 관찰하지 못했습니다! 그것을 지적 주셔서 감사합니다. 꽤 이상한 행동. 스크린 샷을 만들면 모든 윈도우가 고려됩니다. 또한 alertView도 마찬가지입니다. 뿐만 아니라 keyWindow.Sry,하지만 당신 대답이 없어요. – calimarkus

+0

0xced 답변을 읽은 후에는 열린 팝업으로 설정 앱을 닫은 후 조금 더 기다렸습니다. 그것은 작동합니다. 시작하는 동안 앱이 올바르게 표시됩니다 (그러나 팝업이 표시되지 않음). – calimarkus