iPhone / iPad: анимированная заставка? - PullRequest
0 голосов
/ 29 мая 2011

Я хочу создать анимированный логотип, который служит заставкой для моего приложения для iphone / ipad.

Я подумываю показать файл default.png, который затем переходит на .mp4 (гдепервый кадр .mp4 соответствует default.png), воспроизводит 3-секундный фильм, затухает и загружает мое приложение.

У кого-нибудь есть опыт работы с этим?И является ли моя идея (с использованием .mp4) лучшим способом для достижения этой цели?Кроме того, Apple "круто" с этим?

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 29 мая 2011

Да, вы можете сделать это абсолютно, и да, Apple это здорово.

Вы можете использовать MPMoviePlayerController, поместить его под UIImageView с загрузочным изображением, а когда фильм загружен и готов к работе, удалите UIImageView и воспроизведите фильм.

Но, учитывая иногда привередливую природу MPMoviePlayerController, вам нужно тщательно продумывать время. Вот фрагмент, который вы можете использовать в качестве отправной точки:

-(void)setupMovie {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieComplete:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification object:self.playerView];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playMovie:)
                                                 name:MPMoviePlayerLoadStateDidChangeNotification object:self.playerView];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showMovie:)
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification object:self.playerView];

    [self.playerView setContentURL:[[NSBundle mainBundle] URLForResource:@"movie" withExtension:@"mov"]];
    [self.playerView prepareToPlay];
}


-(void)playMovie:(NSNotification *)notification {
    if (self.playerView.loadState == MPMovieLoadStatePlayable | MPMovieLoadStatePlaythroughOK) {
        [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerLoadStateDidChangeNotification object:notification.object];
        [self.playerView play];     
    }
}

-(void)showMovie:(NSNotification *)notification {
    if (self.playerView.playbackState == 1) {
        [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackStateDidChangeNotification object:notification.object];
        // should update this to new UIView anim methods
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:.2];
        self.splashScreen.alpha = 0;
        [UIView commitAnimations];      
    }
}
0 голосов
/ 29 мая 2011

Ответ на UIApplicationDidFinishLaunchingNotification. Я согласен с @jhocking, что вы должны подумать, является ли такое ожидание лучшим UX, но если это так, это довольно простая задача.

0 голосов
/ 29 мая 2011

Я думаю, что подобное руководство может быть полезным: http://www.youtube.com/watch?v=wCsumlHiEc0&feature=channel_video_title

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...