Как добавить анимированные заставки в наше приложение

Как добавить анимированные заставки в наше приложение.

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];
}
Другие вопросы по тегам