1:
iPhone开发实现splash画面非常简单,做一个全屏的欢迎页的图片,把它命名为Default.png,然后放在Xcode工程的Resource里面。
在XXXAppDelegate.m程序中,插入如下代码:
- (BOOL)application:(UIApplication*)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//–inserta delay of 5 seconds before the splash screendisappears–
[NSThread sleepForTimeInterval:5.0];
//Override point for customization after applicationlaunch.
//Add the view controller’s view to the window anddisplay.
[windowaddSubview:viewController.view];
[windowmakeKeyAndVisible];
return YES;
}
这样splash页面就停留5秒后,消失了。
2:
不管是开发个人项目还是公司项目,大家通常都有一个需求,就是,在app启动的时候,指定一定的时间来显示自己的或者公司的logo,那么,我就将刚刚写好的启动加载页面设置代码贡献出来。(不对指出请留言,好的话也给我留个言吧,鼓励下我!呵呵)
这里我需要用到NSTimer这个东西,相关的内容可以查看API,有比较详细的解释。
新建一个项目,随便是什么项目,我建立的是“view based application”,然后,命名为“Logo”,然后确定。
直接编辑“Resources"目录下的"LogoViewController.xib”。将背景颜色改称绿色,主要是为了当从logo页跳转过来的时候能有感觉到变化。
然后新建一个NSTimer.
logoviewcon*lo = [[logoviewconalloc] initWithNibName:@"logoviewcon"bundle:nil];
self.logo = lo;
[lo release];
[windowaddSubview:self.logo.view];
//初始化timmer
NSTimer*timer = [NSTimerscheduledTimerWithTimeInterval: 1.5target: selfselector: @selector(logo:) userInfo: nilrepeats: YES];
注意,初始化的代码中有这么一段:@selector(logo:),其中的方法就是当这个1.5秒时间过去之后自动调用的方法。
-(void) logo:(NSTimer*)timer{
[logo.view removeFromSuperview];
[timer invalidate];//这句代码用来终止timmer,否则,每过1.5秒,就会执行该方法一次,我们是要在开始的时候执行一次就够了。
}
3:
在iphone的启动应用之前,系统会默认在Resources文件夹中的Default.png,为启动界面。
为了在iPad上使用上述的启动画面,你还需要在info.plist中加入
key: UISupportedInterfaceOrie
ntations。
同时,加入值
UIInterfaceOrientationPortrait
UIInterfaceOrientationPortraitUpsideDown
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight。
4.
- 原理:
- 添加一张和Default.png一样的图片,对这个图片进行动画,从而实现Default动画的渐变消失的效果。 操作:
- 在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中添加如下代码: // Make this interesting.
- UIImageView *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];
- 就ok了