//
// sendBtn.swift
// 自定义验证码按钮
//
// Created by apple on 16/4/22.
// Copyright © 2016年 崔家维. All rights reserved.
//
import UIKit
let NUMSS = 60
protocol sendBtnDelegate:NSObjectProtocol {
func whenSendBtnClicked(button:sendBtn) -> Void
}
class sendBtn: UIButton {
// 定时器
var i = NUMSS
var myTimer:NSTimer?
weak var delegate:sendBtnDelegate!
var currentColor:UIColor?
// 初始化控件
func initwith(frame:CGRect,color:UIColor,title:String,superView:UIView,delegate:sendBtnDelegate) -> Void {
self.frame = frame;
self.backgroundColor = color
self.setTitle(title, forState: UIControlState.Normal)
self.addTarget(self, action: #selector(CodeButtonTapped), forControlEvents: UIControlEvents.TouchUpInside)
superView.addSubview(self)
self.delegate = delegate
self.userInteractionEnabled = true
self.currentColor = color
}
// 点击变为不可用状态
func CodeButtonTapped(button:sendBtn)
{
button.setTitle("重发(60)", forState: UIControlState.Disabled)
button.titleLabel?.adjustsFontSizeToFitWidth = true
button.backgroundColor=UIColor.lightGrayColor()
button.enabled=false
myTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(tiemrBengin), userInfo: button, repeats: true)
// 代理实现方法
self.delegate.whenSendBtnClicked(button)
}
func tiemrBengin(timer:NSTimer)
{ i -= 1
let button = timer.userInfo as! sendBtn
button.setTitle(String(format: "重发(%d)",i), forState: UIControlState.Disabled)
button.backgroundColor=UIColor.lightGrayColor()
if i == 0 {
timer.invalidate()
button.enabled=true
button.backgroundColor = self.currentColor
i = NUMSS
}
}
}