我的实现方法是,创建一个按钮,并在按钮下方添加一个label,当点击按钮的时候,按钮隐藏,实时改变label的text显示文字,当计时器为零的时候,按钮显示出来。(为什么不直接用按钮来改变现实文字呢?因为按钮=改变文字的时候,会造成一闪一闪的情况)
首先需要4个属性
UILabel *yanzhengLabel; // 倒计时label
int time; // 倒计时时间
NSTimer *timer; // 计时器
UIButton *yanzhengBtn; // 验证按钮
然后在验证按钮的点击方法中设置定时器:
-(void)yanzhengBtnClicked:(UIButton *)sender{
time = 60;
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(coderSend) userInfo:nil repeats:YES];
sender.hidden = YES;
}
接下来设置计时器
#pragma mark 计时器
- (void)coderSend {
time --; // 当定时器为0的时候,触发的事件
if (time == 0) { // 关闭定时器
[timer setFireDate:[NSDate distantFuture]];
yanzheng.text = @"60秒后获取";
yanzhengBtn.hidden = NO;
}// coder显示文字
NSString *num = [NSString stringWithFormat:@"%d",time];
NSString *timeStr = [NSString stringWithFormat:@
"%@秒后获取",num];
yanzheng.text = timeStr;
}
这样一个简单的计时器就做好了!
网友评论