倒计时

来源:互联网 发布:海南出版社和知和行 编辑:程序博客网 时间:2024/06/05 16:46

实现倒计时功能

////  CountDownViewController.m//  倒计时again/*  写一个自己的VC,命名为CountDownViewController */#import "CountDownViewController.h"@interface CountDownViewController() {    NSInteger _seconds;//秒数    UIButton *_button;//按钮    NSTimer *_timer;//计时器}@end@implementation CountDownViewController- (instancetype)init {    self = [super init];    if (self) {        self.view.backgroundColor = [UIColor whiteColor];    }    return self;}- (void)viewDidLoad {    [super viewDidLoad];    [self setUpView];}#pragma mark -- 设置视图- (void)setUpView {    //创建button    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake((self.view.frame.size.width-100)/2, (self.view.frame.size.height-80)/2, 100, 80)];        button.backgroundColor = [UIColor grayColor];    [button setTitle:@"倒计时" forState:UIControlStateNormal];    button.showsTouchWhenHighlighted = YES;    button.layer.masksToBounds = YES;    button.layer.cornerRadius = 4;        [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];    _button = button;    [self.view addSubview:button];}#pragma mark -- 按钮响应事件- (void)buttonClicked:(UIButton *)button {    [_button setEnabled:NO];//倒计时期间使按钮不可用        _seconds = 10;//倒计时10秒        [_button setTitle:@"10" forState:UIControlStateNormal];//初始10秒        _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(changeTheTime:) userInfo:nil repeats:YES];    }#pragma mark -- 计时器响应事件- (void)changeTheTime:(NSTimer *)timer {    if (_seconds>1) {        --_seconds;        [_button setTitle:[NSString stringWithFormat:@"%ld",_seconds] forState:UIControlStateNormal];    }    else {        _seconds = 10;        [_button setTitle:@"重新倒计时" forState:UIControlStateNormal];        [_timer invalidate];//关闭并销毁计时器        [_button setEnabled:YES];//打开按钮    }}@end


0 0
原创粉丝点击