尾部有代碼地址
6月-08-2016 14-46-22.gif
最近再用酷狗音樂,每次酷狗啟動(dòng)的時(shí)候有一個(gè)動(dòng)畫效果就是啟動(dòng)圖片慢慢放大,然后慢慢消隱!!!
首先分析效果
1.圖片放大 必然是 imageview 的frame的withe 變大 height 也變大
然后imageview 的center是在屏幕中心的
2.圖片慢慢隱藏,顯然是圖片的alpha 由1.0 變成0.0
3. 既然是一切是一個(gè)動(dòng)畫效果那么必然會(huì)是:
UIview animation~~~~~~~~~~~~~ 這個(gè)函數(shù)
當(dāng)一切效果結(jié)束以后 imageview removeframesubview.
UIWindow * window = [[UIApplication sharedApplication]keyWindow] ;
UIImageView *welcome = [[UIImageView alloc]initWithFrame:window.bounds];
[welcome setImage:[UIImage imageNamed:[self getLaunchImageName]]];
//把背景圖放在最上層
[window addSubview:welcome];
[window bringSubviewToFront:welcome];
welcome.alpha = 0.99;//這里alpha的值和下面alpha的值不能設(shè)置為相同的婴程,否則動(dòng)畫相當(dāng)于瞬間執(zhí)行完奇唤,啟動(dòng)頁之后動(dòng)畫瞬間消失。這里alpha設(shè)為0.99瑞佩,動(dòng)畫就不會(huì)有一閃而過的效果旱爆,而是一種類似于靜態(tài)背景的效果响疚。設(shè)為0代咸,動(dòng)畫就相當(dāng)于是淡入的效果了。
[UIView animateWithDuration:3.0f delay:0.0f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
CGRect frame = welcome.frame;
frame.size.width = window.size.width*1.3;
frame.size.height = window.size.height*1.3;
welcome.frame = frame;
welcome.center = window.center;
welcome.alpha = 0;
} completion:^(BOOL finished) {
[welcome removeFromSuperview];
}];
接下來問題來了 這段代碼寫在哪里呢
既然是啟動(dòng)圖 當(dāng)然是在啟動(dòng)的時(shí)候
我們一般啟動(dòng)圖是在這里加入的
78E0F438-4EBA-43E6-9371-9449798EF7E9.png
那么代碼添加在哪里呢 無跡可尋了
啟動(dòng)圖結(jié)束以后是進(jìn)入了APP的首頁 并且執(zhí)行的第一個(gè)函數(shù)是控制器的
viewwillappear
那么就簡(jiǎn)單了 把以上代碼放大 首頁函數(shù)的viewwillappear函數(shù)
效果就好的
本人在這里有一個(gè)疑問 就是 不痛的launchimage 大小是不同的
那么在這段函數(shù)中應(yīng)該怎樣選擇應(yīng)該現(xiàn)顯示的圖片呢 歡迎指教
這次天加了效果圖并且 將行以前遺留的問題解決了就是 放大的launchimage
- (NSString *)getLaunchImageName {
CGSize viewSize = [[UIApplication sharedApplication]keyWindow].bounds.size;
// 豎屏
NSString *viewOrientation = @"Portrait";
NSString *launchImageName = nil;
NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
for (NSDictionary* dict in imagesDict) {
CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]]) {
launchImageName = dict[@"UILaunchImageName"];
}
}
return launchImageName;
}
//放大的圖片調(diào)用它就行
[welcome setImage:[UIImage imageNamed:[self getLaunchImageName]]];
更新 由于一些地方描述的不太清楚 所以今天把代碼地址更新一下 大家可以指點(diǎn)一二
https://git.oschina.net/GAOZEJIAN/imagestartObject.git