2012-07-03 25 views
3

啓動iOS應用程序時,屏幕從Default.png跳轉到界面。對於當前的項目,我想從Default.png中淡入到應用的界面中。有沒有一個好的方法來做到這一點?啓動應用程序後,如何從Default.png淡入?

+1

如果使用故事板,則可以使用自定義的segue創建啓動畫面。 –

回答

4

我花了一點rooster117和runmad的答案,這就是我想出了。

添加一個UIImageView到第一UIViewController的屬性:

@interface DDViewController : UIViewController { 
    ... 
    UIImageView *coverImageView; 
} 

... 

@property (nonatomic, retain) UIImageView *coverImageView; 

然後,對於iPad應用程序的 「絲網之鄉」,我所說的以下內容:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    ... 

    coverImageView = [[UIImageView alloc] init]; 
} 

-(void)viewWillAppear:(BOOL)animated { 
    UIImage *defaultImage; 
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) { 
     NSLog(@"Landscape!"); 
     defaultImage = [UIImage imageNamed:@"Default-Landscape.png"]; 
    } else { 
     NSLog(@"Portrait!"); 
     defaultImage = [UIImage imageNamed:@"Default-Portrait.png"]; 
    } 

    coverImageView = [[UIImageView alloc] initWithImage:defaultImage]; 
    [self.view addSubview:coverImageView]; 

} 

-(void)viewDidAppear:(BOOL)animated { 
    //Remove the coverview with an animation 
    [UIView animateWithDuration:1.0f animations:^(void) { 
     [self.coverImageView setAlpha:0.0]; 
    } completion:^(BOOL finished){ 
     [coverImageView removeFromSuperview]; 
    }]; 
} 
2

是的這不是很難做到。我通過使用默認圖像進行圖像視圖並將其動畫化來實現此目的。像這樣的東西(放在viewDidLoad中的第一個視圖控制器):

_coverImage = [UIImage imageNamed:@"Default.png"]; 
} 

[self.view addSubview:_coverImage]; 

[UIView beginAnimations:@"FadeOutCover" context:nil]; 
[UIView setAnimationDuration:0.5f]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(removeAndDeleteCover)]; 

[_coverImage setAlpha:0.0f]; 

[UIView commitAnimations]; 

然後實現removeAndDeleteCover做:

[_coverImage removeFromSuperview]; 

希望有所幫助,如果你需要它的iPad上運行的通用應用程序,您將不得不檢查該情況並添加正確的默認圖像。

+0

雖然這段代碼是正確的,但我建議使用UIView動畫塊,它的編寫和使用更簡單,更清晰。 – runmad

+0

我同意,但我試圖給出什麼需要做的想法 – rooster117

+0

我找到了一種使用UIView動畫塊的方法,然後找出如何適應設備的方向。我的答案在上面。 – bryanjclark

0

擴展在rooster117的回答,您需要正確加載最終的「着陸場所」,即在解散「啓動畫面」視圖控制器之前,您希望用戶實際與之交互的視圖控制器。這對於從網絡加載數據的應用程序非常重要。

相關問題