Как добавить анимированные заставки в наше приложение - PullRequest
8 голосов
/ 07 марта 2011

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

Ответы [ 4 ]

4 голосов
/ 07 марта 2011

Вы можете использовать последовательность изображений, вот код:

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.

3 голосов
/ 24 июля 2012

Старый ответ:

Ну, это пока невозможно.Вы не можете делать анимацию на Заставке .Но вы можете сделать это через класс 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: false, т. Е. Пользователь не может прокрутить его.

Полное описание см. Здесь Анимированный экран-заставка в iPhone

3 голосов
/ 07 марта 2011

Это очень просто ... Я использовал его, чтобы начать свое приложение с 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];
}
2 голосов
/ 30 марта 2012

Я делаю это, создавая массив изображений, потому что 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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...