效果如图:
由于项目需要在启动图后加载广告,所以把动画加载了广告页面。
实现方法
1.在appdelegate的didFinshLaunchingWithOptions方法里面实现如下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
//这里设置window的根视图控制器
areaVc = [[XSTAreaProvinceViewController alloc] init];
UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:areaVc];
nav.navigationBar.barTintColor = SET_COLOR(@"3FC1FF");
nav.navigationBar.translucent = NO;
areaVc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[nav.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
self.window.rootViewController = nav;
[self.window makeKeyAndVisible];
//这里将启动图取出
[self setLaunchImage];
//设置状态栏为白色
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
return YES;
}
1.启动后再一次从info.plist的字典里面获取到LunachImages(启动图的数组),接着把图片取出来加在window上,接着写个动画效果就行,因为你已经设置好window的根视图控制器,这里启动图加载的时间为默认
具体实现代码:
- (void)setLaunchImage{
CGSize viewSize =self.window.bounds.size;//获取当前屏幕Size
NSStringviewOrientation =@"Portrait";//横屏请设置成 @"Landscape"
NSStringlaunchImage =nil;
//从info.plist文件中获取启动图的数组,这里会返回一个数组(里满是你设置好的启动图)
NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
for(NSDictionary* dict in imagesDict) {
CGSize imageSize =CGSizeFromString(dict[@"UILaunchImageSize"]);
这里取出数组里面和当前屏幕尺寸相同的iamge
if(CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]]) {
launchImage = dict[@"UILaunchImageName"];
}
}
UIImageView * launchView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:launchImage]];
launchView.frame=self.window.bounds;
launchView.contentMode=UIViewContentModeScaleAspectFill;
[self.window addSubview:launchView];
//动画效果(你也可以这只其他,这种timeOut效果不错,用过MBProgressHUD人都知道)
//在两秒内将alpha设置为0,之后在移除
[UIView animateWithDuration:2.0f delay:0.0f options:UIViewAnimationOptionBeginFromCurrentState
animations:^{
launchView.alpha=0.0f;
launchView.layer.transform=CATransform3DScale(CATransform3DIdentity,1.2,1.2,1);
}
completion:^(BOOL finished) {
[launchView removeFromSuperview];
}];
}