一个play方法实现全屏炫酷倒计时 - 续

作者: 杂雾无尘 | 来源:发表于2016-10-15 16:38 被阅读1379次

上篇写了一篇实现全屏倒计时的demo,今天写的这篇是对上篇的扩展,还没看过上篇的这里是通道:一个play方法实现全屏炫酷倒计时的小demo

最近项目中用到的倒计时需求比以前更加酷炫一点,大概是这样的: **全屏动画效果****全屏动画效果**

此功能是直接显示图片实现的,之前写的demo原理是用动画改变一个label的文字,现在要显示图片或者文字,我决定把这个label改成button,因为button中本身就有一个UILabel和UIImageView。
倒计时开始的时候只需要不断的给button上的ImageView赋值就可以了,因此我提供了一个新方法



//** images : 存放所有的图片名称;begin : 倒计时开始回调;success : 倒计时完成回调;*/
+ (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 {
        // 调用倒计时完成的代理和block
        if ([button.delegate respondsToSelector:@selector(countdownSuccess:)]) [button.delegate countdownSuccess:button];
        if (button.countdownSuccessBlock) button.countdownSuccessBlock(button);
        [self hidden];
    }

解释一下:

每次调用这个方法,我会先判断下当前存放图片等数组里还有没有,如果有,直接调用UIButton的setImage:方法,给imageView赋值,然后执行UIView动画,每次UIView动画执行结束,把当前的图片从存放图片的数组里删除,然后重新调用此方法。如果发现数组里已经没有图片了,这时候证明倒计时已经结束,调用倒计时完成时的delegate和block即可。

最终效果图是这样:


**酷炫的全屏动画效果****酷炫的全屏动画效果**

由于本篇是以上篇为基础的,所以再次建议大家不妨去看看一个play方法实现全屏炫酷倒计时的小demo,上篇讲的比较详细,这里我就不过多累述了!有任何疑问的朋友都可以私信我,或者给我留言,任何问题都可以(比如说我有没有女朋友啊,我睡觉喜欢左侧身还是右侧身啊……哈哈,我这人好无聊),我都会秒回的/呲牙!

喜欢的朋友,一定记得点个“喜欢”或者“关注”哦,您的支持是我最大的动力/加油!

您还可以加入我们的群,大家庭期待您的加入!

我们的社区我们的社区

相关文章

  • iOS-定时器相关

    定时器相关文档内容. 1.一个play方法实现全屏炫酷倒计时的小demoiOS轮播图:CADisplayLink实...

  • 一个play方法实现全屏炫酷倒计时 - 续

    上篇写了一篇实现全屏倒计时的demo,今天写的这篇是对上篇的扩展,还没看过上篇的这里是通道:一个play方法实现全...

  • 一个play方法实现全屏炫酷倒计时的小demo

    今天实现了下全屏倒计时的小demo并且简单的封装了一下,保证了其封装性和扩展性。只需在你的工程中倒入#import...

  • Dialog全屏,关闭标题栏,PoupWindos全屏

    全屏 实现全屏(宽/高度全屏) 方法1@Overridepublic Dialog onCreateDialog(...

  • 究极萌宠

    全新3D巨作,2019火爆来袭! 数千种萌宠任你挑选,华丽招式酷炫全屏!

  • 2018-10-19 全屏实现方法

    JS控制浏览器全屏,通过点击按钮实现 JS 全屏方法 JS退出全屏的方法(通过点击按钮退出全屏) JS通过按esc...

  • Button

    Android 一行代码实现炫酷Button

  • 动画UI总结

    1.Android 从 json 文件到炫酷动画 - Lottie 实现思路和源码分析2.Android酷炫动画是...

  • 2

    首 标题1头王者荣耀全屏美化标题1尾 内容1头一键美化全面,各种炫酷全屏框等你来体验。内容1尾 图片1头http:...

  • 利用web管理spark任务

    由于最近学习了Play Framework这个web开发框架,接口的设计和api非常炫酷。由于是scala写的,所...

网友评论

    本文标题:一个play方法实现全屏炫酷倒计时 - 续

    本文链接:https://www.haomeiwen.com/subject/vzanyttx.html