iPhone中的animation闪屏
我需要实现animation启animation面到iPhone应用程序。 我已经看到了同样的事情已经实施的Skype应用程序。
任何人都可以有想法我怎么能在我的应用程序中实现相同的东西
把一个UIView和一个Imageview进去。 将所有图像放到ImageView上进行animation处理。
-(void)viewDidLoad { NSArray *arrImage=[NSArray arrayWithObjects: [UIImage imageNamed:@"1.png"], [UIImage imageNamed:@"2.png"], [UIImage imageNamed:@"3.png"], nil]; imgVw.backgroundColor=[UIColor purpleColor]; imgVw.animationImages=arrImage; imgVw.animationDuration=2.5; imgVw.animationRepeatCount=1; [imgVw startAnimating]; [NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(animateNext) userInfo:nil repeats:NO]; }
这会显示你的应用程序图标。
之后,您将显示那些默认情况下隐藏的控件,并将它们从底部移动到顶部。
-(void)animateNext { lbl.hidden = NO; btn.hidden = NO; txt1.hidden = NO; txt2.hidden = NO; [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:1.9]; lbl.frame=CGRectMake(lbl.frame.origin.x,lbl.frame.origin.y - 150,lbl.frame.size.width,lbl.frame.size.height); imgVw.frame = CGRectMake(imgVw.frame.origin.x, imgVw.frame.origin.y - 150, imgVw.frame.size.width, imgVw.frame.size.height); txt1.frame = CGRectMake(txt1.frame.origin.x, txt1.frame.origin.y - 150, txt1.frame.size.width, txt1.frame.size.height); txt2.frame = CGRectMake(txt2.frame.origin.x, txt2.frame.origin.y - 150, txt2.frame.size.width, txt2.frame.size.height); btn.frame = CGRectMake(btn.frame.origin.x, btn.frame.origin.y - 150, btn.frame.size.width, btn.frame.size.height); [UIView commitAnimations]; }
希望这个帮助…
你可以使用图像序列,这里是代码:
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;
并调用UIImageView的startAnimation和endAnimation方法。
要么
它非常简单…我用它来开始我的应用程序splashView.Hope它会帮助你….在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]; }
我们可以在webView
显示.gif图像,看起来很完美!
用XIB
取一个名为SplashView
的新UIViewController
类,然后添加一个UIWebView
( SplashView
)框架,隐藏statusbar
。
在SplashView.h
#import <UIKit/UIKit.h> @interface SplashView : UIViewController @property(nonatomic, retain)IBOutlet UIWebView *webView; @end
在SplashView.m
- (void)viewDidLoad { [super viewDidLoad]; 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]; }
这是关于SplashView
类。 现在来到你的appdelegate的类。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; [[UIApplication sharedApplication] setStatusBarHidden:YES]; splashView = [[SplashView alloc]initWithNibName:@"SplashView" bundle:nil]; [self.window addSubview:splashView.view]; [self performSelector:@selector(changeView) withObject:nil afterDelay:3.0]; [self.window makeKeyAndVisible]; return YES; } -(void)changeView { [[UIApplication sharedApplication] setStatusBarHidden:NO]; [splashView.view removeFromSuperview]; [self.window setRootViewController:self.viewController]; }
尝试这个
Appdelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate> { UIImageView *splashView; } @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomic) ViewController *viewController; - (void)startupAnimationDone:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; // Make this interesting. splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)]; splashView.image = [UIImage imageNamed:@"Default.png"]; [self.window addSubview:splashView]; [self.window bringSubviewToFront:splashView]; [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:2.0]; [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.window cache:YES]; [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)]; splashView.alpha = 0.0; splashView.frame = CGRectMake(-60, -85, 440, 635); [UIView commitAnimations]; return YES; } - (void)startupAnimationDone:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context { [splashView removeFromSuperview]; }
你需要启动你的应用程序与视图控制器,在它的uiimageview ..创build一系列.png图像受到UIImageView 检查如何在uiimageviewanimation数组的图像 。 进一步为了解雇它,一旦你的animation需要实现一个协议,将通知你的应用程序开始第一视图控制器closuresanimation
- (void) welcomeScreen { //Welcome Screen UIImageView* welcome = [[[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,480)]autorelease]; welcome.image = [UIImage imageNamed:@"img.png"]; [window addSubview:welcome]; [window bringSubviewToFront:welcome]; //Animation Effects (zoom and fade) [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:2.0]; [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:window cache:YES]; [UIView setAnimationDelegate:welcome]; [UIView setAnimationDidStopSelector:@selector(removeFromSuperview)]; //set transparency to 0.0 welcome.alpha = 0.0; //zoom effect welcome.frame = CGRectMake(-60, -60, 440, 600); [UIView commitAnimations]; }
是的简单在AppDelegate类首先玷污imageview像波纹pipe..
@interface AppDelegate : UIResponder { UIImageView *splashView; }
和.m文件中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; splashView.image = [UIImage imageNamed:@"Default"]; [self.window addSubview:splashView]; [self performSelector:@selector(loadViewIphone) withObject:nil afterDelay:2.0]; } [self.window makeKeyAndVisible]; return YES; } -(void)loadViewIphone { [splashView removeFromSuperview]; self.window.rootViewController = self.tabBarController; [self.window makeKeyAndVisible]; CATransition *animation = [CATransition animation]; [animation setDelegate:self]; [animation setType:kCATransitionFade]; [animation setDuration:0.5]; [animation setTimingFunction:[CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut]]; [[self.window layer] addAnimation:animation forKey:@"transitionViewAnimation"]; }
我希望这可以帮助你..
🙂