上篇寫(xiě)了一篇實(shí)現(xiàn)全屏倒計(jì)時(shí)的demo挥吵,今天寫(xiě)的這篇是對(duì)上篇的擴(kuò)展载碌,還沒(méi)看過(guò)上篇的這里是通道:一個(gè)play方法實(shí)現(xiàn)全屏炫酷倒計(jì)時(shí)的小demo
最近項(xiàng)目中用到的倒計(jì)時(shí)需求比以前更加酷炫一點(diǎn)赞弥,大概是這樣的:此功能是直接顯示圖片實(shí)現(xiàn)的冰评,之前寫(xiě)的demo原理是用動(dòng)畫(huà)改變一個(gè)label的文字,現(xiàn)在要顯示圖片或者文字预侯,我決定把這個(gè)label改成button致开,因?yàn)閎utton中本身就有一個(gè)UILabel和UIImageView。
倒計(jì)時(shí)開(kāi)始的時(shí)候只需要不斷的給button上的ImageView賦值就可以了萎馅,因此我提供了一個(gè)新方法
//** images : 存放所有的圖片名稱(chēng)双戳;begin : 倒計(jì)時(shí)開(kāi)始回調(diào);success : 倒計(jì)時(shí)完成回調(diào)校坑;*/
+ (instancetype)playWithImages:(NSArray *)images begin:(CountdownBeginBlock)begin success:(CountdownSuccessBlock)success;
此方法的核心代碼部分在這里
if (button.images.count > 0) {
isAnimationing = YES;
[button setImage:[UIImage imageNamed:button.images.firstObject] forState:UIControlStateNormal];
[UIView animateWithDuration:1.0f animations:^{
button.transform = CGAffineTransformIdentity;
button.alpha = 1;
} completion:^(BOOL finished) {
if (finished) {
button.alpha = 0;
button.transform = CGAffineTransformMakeScale(5, 5);
if (button.images.count > 0) {
[button.images removeObjectAtIndex:0];
[self scaleActionWithBeginBlock:button.countdownBeginBlock andSuccessBlock:button.countdownSuccessBlock button:button];
}
}
}];
} else {
// 調(diào)用倒計(jì)時(shí)完成的代理和block
if ([button.delegate respondsToSelector:@selector(countdownSuccess:)]) [button.delegate countdownSuccess:button];
if (button.countdownSuccessBlock) button.countdownSuccessBlock(button);
[self hidden];
}
解釋一下:
每次調(diào)用這個(gè)方法拣技,我會(huì)先判斷下當(dāng)前存放圖片等數(shù)組里還有沒(méi)有,如果有耍目,直接調(diào)用UIButton的setImage:方法,給imageView賦值徐绑,然后執(zhí)行UIView動(dòng)畫(huà)邪驮,每次UIView動(dòng)畫(huà)執(zhí)行結(jié)束,把當(dāng)前的圖片從存放圖片的數(shù)組里刪除傲茄,然后重新調(diào)用此方法毅访。如果發(fā)現(xiàn)數(shù)組里已經(jīng)沒(méi)有圖片了沮榜,這時(shí)候證明倒計(jì)時(shí)已經(jīng)結(jié)束,調(diào)用倒計(jì)時(shí)完成時(shí)的delegate和block即可喻粹。
最終效果圖是這樣:
由于本篇是以上篇為基礎(chǔ)的蟆融,所以再次建議大家不妨去看看一個(gè)play方法實(shí)現(xiàn)全屏炫酷倒計(jì)時(shí)的小demo,上篇講的比較詳細(xì)守呜,這里我就不過(guò)多累述了型酥!有任何疑問(wèn)的朋友都可以私信我,或者給我留言查乒,任何問(wèn)題都可以(比如說(shuō)我有沒(méi)有女朋友啊弥喉,我睡覺(jué)喜歡左側(cè)身還是右側(cè)身啊……哈哈,我這人好無(wú)聊)玛迄,我都會(huì)秒回的/呲牙由境!
喜歡的朋友,一定記得點(diǎn)個(gè)“喜歡”或者“關(guān)注”哦蓖议,您的支持是我最大的動(dòng)力/加油!
您還可以加入我們的群虏杰,大家庭期待您的加入!