2015-06-22 92 views
1

是否有可能因爲GIF不接受申請了iOS推出現場動畫效果嗎?動畫爲iOS啓動圖像

+1

您可以添加啓動場景的精確副本作爲場景的第一張圖像,並從那裏上製作動畫。 –

+0

感謝您的回覆,但沒有明白您的意思。 – James

+0

啓動圖像不能動畫 –

回答

3

編號啓動場景是圖像或LaunchScreen.xib。兩者都是靜態的。

但是,您可以出現在您的實際應用中類似於啓動圖像的GIF如果應用程序加載完畢後,將動畫。

如果使用啓動圖像,創建的最初的viewController中的所有其他內容上面一個UIImageView。然後,您爲該圖像視圖添加動畫。 LaunchScreen.xib也一樣,重新構建LaunchScreen.xib設置作爲初始視圖控制器,然後根據它創建一些自定義動畫。

2

啓動圖像是靜態的,可以配置它們與Xcode和你不能改變它們。但在啓動畫面中,您可以做任何你喜歡的事情,它只是一個viewController,你可以在其中顯示動畫,視頻或其他任何東西。在啓動圖像之後和「着陸頁」之前顯示啓動畫面。然後,在閃屏中,您可以逐幀創建動畫,或者在MPMoviePlayerController中加載.mp4視頻。感謝

0

我對你有一個可能的解決方案:

  1. 設置閃屏圖像作爲第一幀的gif動畫
  2. 在您的appDelegate創建用於顯示視頻,例如方法。 注意:將閃屏圖像添加到窗口框架,直到視頻準備播放。 所以申報兩個屬性
@property (nonatomic, strong) MPMoviePlayerController *playerCtrl; 

@property (nonatomic, strong) UIImageView *previewImage; 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    [self setupMovie]; 
    } 

    -(void)setupMovie 
    { 
     NSString *moviePath = [[NSBundle mainBundle] pathForResource:@"video_name" ofType:@"type_of_video"]; 
     NSURL *movieURL = [NSURL fileURLWithPath:moviePath]; 

     self.playerCtrl = [[MPMoviePlayerController alloc] initWithContentURL:movieURL]; 
     self.playerCtrl.scalingMode = MPMovieScalingModeAspectFill; 
     self.playerCtrl.controlStyle = MPMovieControlStyleNone; 
     self.playerCtrl.view.frame = self.window.frame; 

     [[NSNotificationCenter defaultCenter] addObserver:self 
               selector:@selector(moviePlayBackDidFinish:) 
                name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; 

     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateDidChange:) name:MPMediaPlaybackIsPreparedToPlayDidChangeNotification object:nil]; 

     [self.window addSubview:self.playerCtrl.view]; 
     [self.playerCtrl prepareToPlay]; 

     self.previewImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SplashScreen"]]; 
     self.previewImage.frame = self.window.frame; 
     self.previewImage.contentMode = UIViewContentModeScaleAspectFill; 
     [self.window addSubview:self.previewImage]; 


    } 

    - (void)moviePlayBackDidFinish:(MPMoviePlayerController *)player 
    { 
     [self stopPlayingVideo]; 
    } 

    - (void)moviePlayerPlaybackStateDidChange:(NSNotification*)notification 
    { 
     if (self.playerCtrl.isPreparedToPlay) { 
      [self.previewImage removeFromSuperview]; 
      [self.playerCtrl play]; 
     } 
    } 

    - (void)stopPlayingVideo 
    { 
     @weakify(self) 
     [UIView animateWithDuration:2.3 animations:^(void) { 
      @strongify(self) 
      [self.playerCtrl.view setAlpha:0.0]; 
     } completion:^(BOOL finished) { 
      @strongify(self) 
      [self.playerCtrl.view removeFromSuperview]; 

     }]; 

    } 

第二個解決方案,如果你想在代碼中所有的動畫:

  1. 設置閃屏圖像作爲第一幀你的gif動畫 2.創建視圖控制器所有需要的動畫,並從你的第一個視圖控制器在naviga重刑層次(如果你不想模態控制器初始化這個VC爲根的導航控制器) - 當您使用的TabBar作爲根控制器
  2. 顯示所有動畫
  3. 只需dissmis控制器的所有存根改完之後,這可能是有幫助