美文网首页iOS开发iOS收藏Object-C
我的ios :label倒计时显示

我的ios :label倒计时显示

作者: Dayu大鱼 | 来源:发表于2016-07-06 13:11 被阅读2466次

    整个label内部倒计时所显示的内容可以看做一个字符串

    头部代码
    #import "YQHomeViewController.h"
    
    @interface YQHomeViewController ()
    
    //将sb中的label进行拖拽过来
    @property (weak, nonatomic) IBOutlet UILabel *timeLbl;
    
    //创建定时器(因为下面两个方法都使用,所以定时器拿出来设置为一个属性)
    @property(nonatomic,strong)NSTimer*countDownTimer;
    
    @end
    
    
    @implementation YQHomeViewController
    
    //倒计时总的秒数
    static NSInteger  secondsCountDown = 86400;
    
    - (void)viewDidLoad {
       [super viewDidLoad];
    
    
    

    实现步骤:

    1.设置定时器(给定24小时)

    一个定时器,定时器里面做设置间隔多少时间执行什么方法(countDownAction)

    - (void)viewDidLoad {
        [super viewDidLoad];
     
        //设置定时器
       _countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(countDownAction) userInfo:nil repeats:YES];
        //启动倒计时后会每秒钟调用一次方法 countDownAction
       
        //设置倒计时显示的时间
        NSString *str_hour = [NSString stringWithFormat:@"%02ld",secondsCountDown/3600];//时
        NSString *str_minute = [NSString stringWithFormat:@"%02ld",(secondsCountDown%3600)/60];//分
        NSString *str_second = [NSString stringWithFormat:@"%02ld",secondsCountDown%60];//秒
        NSString *format_time = [NSString stringWithFormat:@"%@:%@:%@",str_hour,str_minute,str_second];
        self.timeLbl.text = [NSString stringWithFormat:@"倒计时   %@",format_time];
        //设置文字颜色
        self.timeLbl.textColor = [UIColor  blackColor ];
        [self.view addSubview:_timeLbl];
        
    }
    
    

    2.方法(countDownAction)(来自创建定时器时需要执行的方法)内部:总秒数递减

    1.先递减
    2.给时分秒字符串通过递减过后的秒数,重新计算数值,并输出显示

    //实现倒计时动作
    -(void)countDownAction{
        //倒计时-1
        secondsCountDown--;
    
        //重新计算 时/分/秒
        NSString *str_hour = [NSString stringWithFormat:@"%02ld",secondsCountDown/3600];
      
        NSString *str_minute = [NSString stringWithFormat:@"%02ld",(secondsCountDown%3600)/60];
      
        NSString *str_second = [NSString stringWithFormat:@"%02ld",secondsCountDown%60];
       
        NSString *format_time = [NSString stringWithFormat:@"%@:%@:%@",str_hour,str_minute,str_second];
        //修改倒计时标签及显示内容
        self.timeLbl.text=[NSString stringWithFormat:@"实训倒计时   %@",format_time];
       
        
        //当倒计时到0时做需要的操作,比如验证码过期不能提交
        if(secondsCountDown==0){
            
            [_countDownTimer invalidate];
        }
        
        }
    
    

    屏幕输出结果:

    程序输出结果:灰色的两个scrollView可以忽略,不要让它干扰到你

    相关文章

      网友评论

      本文标题:我的ios :label倒计时显示

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