专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Swift

Swift打包的一种带动画的倒计时Label

发布时间:2011-06-30 07:23:54 文章来源:www.iduyao.cn 采编人员:星星草
Swift封装的一种带动画的倒计时Label

哇,一转眼都凌晨1:30了(可怜的我还在写博客,不过趁这段时间有空多谢谢,多总结总结是没有错的,希望能和大家一起进步),终于把今天,不对,昨天突然想实现的一个倒计时Label写好了,感觉像现在app中这种登陆啊,获取验证码什么的用着的地方会特别多,不足之处还望指正!

别的不扯多了,下面进入正题!

一.重写buttoninit方法

代码如下:

convenience init(count: Int,frame: CGRect , var color: UIColor?) {
        self.init(frame: frame)
        //如果设定的有color就显示color,没有就显示默认的
        if color == nil {
            color = normal_bgColor
        } else {
            normal_bgColor = color!
        }
        self.backgroundColor = color
        self.startCount = count
        self.originNum = count
        self.addLabel()
        super.addTarget(self, action: Selector("startCountDown"), forControlEvents: UIControlEvents.TouchUpInside )
    }

这里重写了init方法,后面加了count(倒计时的时长),framecolor这三个参数,由于这个color是可以设置有或者无德,所以申明为可选值(Opational Value),而且还声明为可变的(var),当颜色值你不设置的时候,会默认为normal_bgColor 这个颜色(源码中已经设置好)。

二.开启定时器,开始倒计时

//    开启定时器
    func startCountDown() {
        self.timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("countDown"), userInfo: nil, repeats: true)
        self.backgroundColor = enabled_bgColor
//        self.setTitleColor(UIColor.blackColor(), forState: UIControlState.Disabled)
        self.enabled = false

        //动画开始
        switch self.animaType {
        case .CHWBtnTypeScale :
            self.numAnimation()
        case .CHWBtnTypeRotate:
            self.rotateAnimation()
        }

        println("pass")
    }

这里我设置了button的两种类型,一个是放大消失的效果CHWBtnTypeScale,一个是旋转缩小消失的效果CHWBtnTypeRotate,这两种类型定义为枚举类型,如下:

enum CountBtnType {
    case CHWBtnTypeScale
    case CHWBtnTypeRotate
}

这样我就可以灵活的设置我的倒计时Label,然后用不同的效果,关于swift的枚举就不多说了,如果不清楚的可以看这里,里面有详细的介绍。关于动画部分都比较简单,这里就不说了,后面会附上代码的下载链接,有需要的可以下载看看。

三.使用

使用其实很简单,把CHWButton.swift这个文件拉进你的工程,然后创建一个这个类型的对象就行了,这里列举出来两个例子:

        let btn = CHWButton(count: 5, frame: CGRectMake(50, 100, 100, 50), color:nil)
        btn.animaType = CountBtnType.CHWBtnTypeScale
        btn.layer.masksToBounds = true
        btn.layer.cornerRadius = 5
        self.view.addSubview(btn)

        let btn2 = CHWButton(count: 5, frame: CGRectMake(200, 100, 100, 50), color:UIColor.cyanColor())
        btn2.enabled_bgColor = UIColor.greenColor()
        btn2.animaType = CountBtnType.CHWBtnTypeRotate
        btn2.layer.masksToBounds = true
        btn2.layer.cornerRadius = 5
        self.view.addSubview(btn2)

两种类型的效果如下:
1.CHWBtnTypeScale
放大消失的效果
2.CHWBtnTypeRotate
这里写图片描述

这里只是做了一个简单地效果,主要是练习swift以及swift的封装思想,就当是为迎接swift大潮流的到来先做准备吧,好吧,今天就到这里了,八一建军节快乐,要睡觉了,good night everyone !

最后你可以在这里下载源码 !

版权声明:本文为博主原创文章,转载请注明出处,谢谢。

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: