Как добавить анимированные заставки в наше приложение
Как добавить анимированные заставки в наше приложение.
4 ответа
Вы можете использовать последовательность изображений, вот код:
for(NSInteger i=1;i<=totalImages;i++){
NSString *strImage = [NSString stringWithFormat:@"Activity_%d",i];
UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:strImage ofType:@"png"]];
[imageArray addObject:image];
}
splashImageView.animationImages = imageArray;
splashImageView.animationDuration = 0.8;
и просто вызовите метод startAnimation и endAnimation для UIImageView.
Старый ответ:
Ну, это пока невозможно. Вы не можете сделать анимацию на заставке. Но вы можете сделать это через UIViewController
класс, который будет выглядеть как заставка. Удалить default.png
изображение из вашего проекта, с помощью которого пользователь не может видеть заставку по умолчанию. Тогда в вашем первом ViewController
класс вы можете сделать анимацию, используя array of images
как уже было сказано выше. И в viewDidLoad:
метод сделать NSTimer
затем удерживайте View
по твоим словам. После окончания срока NSTimer
перейти к следующему ViewController
Посмотреть.
Редактировать:
Я нашел альтернативное решение, чтобы сделать его анимированным. Мы можем показать изображение .gif в webView
и выглядит отлично!
NSString *imagePath = [[NSBundle mainBundle] pathForResource: @"animated" ofType: @"gif"];
NSData *data = [NSData dataWithContentsOfFile:imagePath];
[self.webView setUserInteractionEnabled:NO];
[self.webView loadData:data MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];
Сделайте это представление корневым видом вашего приложения и через несколько секунд перейдите к следующему представлению. Не забудьте сделать его userIntractionEnabled:
ложь, т.е. пользователь не может прокрутить его.
Полное описание см. Здесь Анимированный экран-заставка в iPhone
Это очень просто... Я использовал его, чтобы начать свое приложение с splashView. Надеюсь, это поможет вам.... В AppDelegate.m:
Приложение didFinishLaunchingWithOptions:
UIImage* image=[UIImage imageNamed:@"splash.jpg"];
splashView=[[UIImageView alloc]initWithImage:image];
[window addSubview:splashView];
[window bringSubviewToFront:splashView];
[self performSelector:@selector(removeSplash) withObject:self afterDelay:2];
[window makeKeyAndVisible];
Чтобы удалить splashView:
-(void)removeSplash{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[splashView removeFromSuperview];
[UIView commitAnimations];
[window addSubview:viewController.view];
}
Я делаю это, создавая массив изображений, потому что GIF не поддерживается формат
Просто добавьте фреймы изображения вашего мувиклипа, например: {Splashbackground1,Splashbackground2,Splashbackground3 - последовательность изображений}
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
// create the view that will execute our animation for elephant
CGRect splashscreenmovieclipframe = CGRectMake(0.0f,0.0f,480.0f, 320.0f); //set co-ordinate here i use full screen
splashscreenmovieclip = [[UIImageView alloc] initWithFrame:splashscreenmovieclipframe];
// load all the frames of our animation
splashscreenmovieclip.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"Splashbackground.png"],
[UIImage imageNamed:@"Splashbackground1.png"],
[UIImage imageNamed:@"Splashbackground2.png"],
[UIImage imageNamed:@"Splashbackground3.png"],
nil];
// all frames will execute in 1.75 seconds
splashscreenmovieclip.animationDuration =7;
// repeat the annimation forever
splashscreenmovieclip.animationRepeatCount = 0;
// start animating
[splashscreenmovieclip startAnimating];
// add the animation view to the main window
[self.view addSubview:splashscreenmovieclip];
[NSTimer scheduledTimerWithTimeInterval:7.0f target:self selector:@selector(Gotomainmenuview:) userInfo:nil repeats:NO];
[super viewDidLoad];
}
- (void)Gotomainmenuview:(NSTimer *)theTimer
{
// write your code here for counter update
[splashscreenmovieclip removeFromSuperview];
newclasstojump *mmvc=[[newclasstojump alloc]initWithNibName:@"newclasstojump" bundle:nil];
[self.view addSubview:mmvc.view];
}