Да, вы можете сделать это абсолютно, и да, 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];
}
}