2010-02-12 4 views
3

나는 정말로 최선을 다하려고 애 쓰지만 내 코드에서 어떤 것이 잘못 될지 알 수 없다. 아이폰 스플래쉬 스크린

[window addSubview:tabBarController.view]; 

UIImage *image = [UIImage imageNamed:@"lol.png"]; 
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image]; 

는 차이가이 일을하게됩니까 : 내 첫 번째 질문은 아래 코드와 관련이

) 나는 검색을 많이했지만 난 그냥 몇 가지 객관적인 C의 기초를 이해 할 수없는 것 같아요

[window addSubview:defaultImage]; 

나이 :

[tabBarController.view addSubview:defaultImage]; 

내 두 번째 질문은 시작 화면을 만드는 방법에 대한 것입니다. 나 자신에 의해 그것을 할 시도했지만 난 그냥 (우리가 AppDelegate에에있어) 작동하지 않는 것을 찾을 수 없습니다 : I라는부터

[window addSubview:tabBarController.view]; 

UIImage *image = [UIImage imageNamed:@"lol.png"]; 
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image]; 

[window addSubview:defaultImage]; 
[window makeKeyAndVisible]; //makes the window visible right ? 

UIImage *image2 = [UIImage imageNamed:@"lol2.png"]; 
UIImageView *pubImage = [[UIImageView alloc] initWithImage:image2]; 

[UIView setAnimationDelegate:self]; 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:2.0]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window cache:YES]; //not sure about the forView:window ... 

[defaultImage removeFromSuperview]; 
[window addSubview:pubImage]; 

[UIView commitAnimations]; 

흠, 그런 것 같아요 "makekeyandvisible"창이 표시해야하며 애니메이션이해야 사용자에게 보여줄 수 있습니다 ...

글쎄, 나는 그것이 작동하지 않습니다 단계를 놓치고 있습니다 : D 조.

도움말 환영,

고티에.

+0

여러 개의 질문으로 문제를 해결하면 더 많은 관심을받을 것입니다. 스플래시 화면 대신 애니메이션을 적용하는 것처럼 보입니다. 이게 뭐야? –

+0

정확히, 나는 defaultImage에서 pubImage로 전환하고 싶습니다. – gotye

+0

나는 똑같은 일을 시도하고 NSTimer에 의해 행해졌 다. 그러나 나는 타이머없이 그것을하는 방법을 아직도 생각하고있다. 이것을 달성 할 다른 방법이 있습니까? –

답변

3

"Default.png"라는 이름의 프로젝트에 이미지를 추가하면 스플래시 화면으로 사용됩니다.

사용자가 필요 이상으로 화면을 보도록 강요하는 것은 일반적으로 좋지 않은 것으로 간주됩니다.

어쨌든 addSubview를 사용하여 추가하려는 경우 : 잘 작동해야합니다. 애니메이션을 원한다면 UIView 애니메이션 대신 CATransitions를 조사해야 할 수 있습니다.

스플래시 화면을 창이나 주보기 컨트롤러에 추가하는 것이 사용자에게 동일하게 나타나야합니다.

편집 : 이 조각을 시도 - 전환이 완료되면 당신이 뭔가를해야 할 경우

// Using a CATransition 
    CATransition* transition = [CATransition animation]; 
    transition.delegate = self; // if you set this, implement the method below 
    transition.duration = 0.3; 
    transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut]; 
    transition.type = kCATransitionMoveIn; 
    transition.subtype = kCATransitionFromRight; 
    [self.view.layer addAnimation: transition forKey: nil]; 
    [self.view addSubview: theNewView]; 

이를 추가 QuartzCore 프레임 워크를 #include <QuartzCore/QuartzCore.h> 필요하고 추가 할 것입니다 :

#pragma mark - 
#pragma mark CAAnimation Delegate Methods 
- (void)animationDidStop: (CAAnimation*)theAnimation finished: (BOOL)flag 
{ 
    // Whatever you need to do when the animation is done. 
} 
+0

답장을 보내 주셔서 감사합니다. 그러나 실제로이 문제가 무엇인지 알기 원합니다.) 내 말은,이 코드는 잘 작동하므로 그 안에 무엇이 들어 있는지 이해함으로써 내 기술을 향상시키고 싶습니다! 자유 시간을 가지면 CATransitions을 보게 될 것입니다. – gotye

+0

나는 해결책을 가지고 있을지도 모른다고 생각합니다 ...이 플립 효과는 시뮬레이터에서 작동해야합니까? – gotye

+0

어떤 행동을합니까? 이미지가 전혀 보이지 않습니까? 작동하지 않는 애니메이션 만입니까? 아니면 아무것도 나타나지 않습니까? – jessecurry

0

다른 답변의 첫 번째 문구에 동의하지 않습니다. ''Default.png '라는 프로젝트에 이미지를 추가하면 스플래시 화면으로 작동합니다.'

Default.png는 시작 이미지입니다. Apple HIG은 시작 이미지와 시작 화면을 구분합니다.이러한 시작 화면 창에 대해

  • 가 AS ", 응용 프로그램 항목 경험"

    • 을 : 특히

      , 그것은

      피가 제공 할 수있는 기회로 출시 이미지를 사용하여 말한다

    • 브랜딩 요소 (응용 프로그램의 첫 번째 화면에서 정적 인 부분이 아닌 경우)

    따라서 스플래시 화면의 경우 NSTimer 또는 사용자가 스플래시 화면을 닫을 수있는 버튼을 사용하십시오.