2012-07-31 2 views
0

제공된 영역에 default.png를 넣은 응용 프로그램을 만들고 있는데, 응용 프로그램 대리인에게 sleep(5);을 추가했는데 현재 정상적으로 실행됩니다. 내가해야 할 일은iPhone 앱에 두 개의 시작 화면을 추가하려면 어떻게해야합니까?

앱이 시작할 때 나는 하나 개의 시작 2.5 초 동안 스크린과 2.5 초 동안 다른 하나를 얻을 수 있도록, 하나 개 이상의 이미지를 추가 할 수 있습니다.

시작시 2 개의 시작 화면을 표시하려면 어떻게해야합니까?

+3

시작시 앱이 아닌 스톨 수행,이 반대 인 [ HIG] (http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5). "사용자가 자주 응용 프로그램간에 전환 할 가능성이 있으므로 실행 시간을 최소한으로 줄이기 위해 모든 노력을 기울여야하며,주의를 끌기보다는 경험을 경시하는 개시 이미지를 설계해야합니다." – rckoenes

답변

3

두 개의 스플래시 화면을 사용할 수 없습니다. 두 번째 이미지로 채워진 UIImageView로 viewcontroller를 만들고 2.5 초 동안 보여줍니다.

0

그냥 단순히보기 컨트롤러에 이미지를 추가하고 2.5 초 후에,보기에서 제거합니다. (UIApplication ) 응용 프로그램의 didFinishLaunchingWithOptions : (NSDictionary와) launchOptions (BOOL) 응용 프로그램 -

+0

이 답변은 이전에 답변 한 Apurv의 사본입니다. 그것은 여분의 아무것도 추가하지 않습니다 –

+1

Apurv는 UIImageView ....와 viewcontroller를 만들 것을 말하고 있으며 나는 imageView만을 추가한다고 말하고 있습니다 ...8-) – Rajneesh071

-3

하이는 정말

..... 당신이 사랑하는 난이 하나를 사용하도록 제안에 대한 전체 hwlp 코드를 다음과 같이 해보시기 바랍니다

{

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

// Override point for customization after application launch. 

MasterViewController *masterViewController = [[[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil] autorelease]; 

self.navigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease]; 

UIImageView *imageView = [[[UIImageView alloc] initWithFrame:self.window.bounds] autorelease]; 

UIImage *image = [UIImage imageNamed:@"Welcome.png"]; 
if (!image) 
{ 
    NSLog(@"Something went wrong trying to get the UIImage. Check filenames"); 
} 

imageView.image = image; 

[self.window addSubview:imageView]; 
[self.window makeKeyAndVisible]; 

[self performSelector:@selector(removeFirstSplash:) withObject:imageView afterDelay:3]; 

return YES; 

}

- (무효) removeFirstSplash : (UIIm ageView *)는

을 oldImageView {

UIImageView *imageView = [[[UIImageView alloc] initWithFrame:self.window.bounds] autorelease]; 

UIImage *image = [UIImage imageNamed:@"Splash.png"]; 

imageView.image = image; 

[self.window addSubview:imageView]; 

[self performSelector:@selector(removeSecondSplash:) withObject:imageView afterDelay:3]; 

[oldImageView removeFromSuperview]; 

}

- (무효) removeSecondSplash : {

[self.window addSubview:self.navigationController.view]; 

[oldImageView removeFromSuperview]; 

}

+0

이것은 어떻게 5 개의 upvotes를 가지고 있으며, 작동하지 않을 것입니까? – jrturton

+3

이 장소는 나환자로 가득하다)) – jrturton

+2

이 장소는 정말로 나환으로 가득하다. 그리고 우리는 그들 사이에있다. 그것을위한 큰 환호;) –

0

당신

을 oldImageView (있는 UIImageView *)기본보기 위에 있지만 appDelegate에서보기를 쉽게 구현할 수 있습니다. 예를 들어, 기본보기로 페이드 아웃되는 스플래시 이미지 (또는 페이드 아웃되는 기본 이미지 : 스플래시 화면과 기본 화면에 같은 이미지를 넣기)를 원할 경우 기본보기 인 경우 올바른 방향을 제공합니다. (UIApplication의 *) 응용 프로그램의 didFinishLaunchingWithOptions :

그냥

응용 프로그램에 추가

방법 :

UIImageView*imageView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"your_default_image_or_First.png"]]; 
[[firstViewController view] addSubview:imageView]; 
[[firstViewController view] bringSubviewToFront:imageView]; 
[NSThread SleepForTimeInterval:(2.5)]; 
[imageView setImage:[UIImage imageNamed:@"your_default_image_or_Second.png"]] 
// as usual 
[self.window makeKeyAndVisible]; 

//now fade out splash image 
[UIView transitionWithView:self.window duration:1.0f options:UIViewAnimationOptionTransitionNone animations:^(void){imageView.alpha=0.0f;} completion:^(BOOL finished){[imageView removeFromSuperview];}]; 
관련 문제