iOS实现倒计时显示 时 分 秒

本文介绍如何在iOS应用中实现倒计时功能,详细讲解了如何展示倒计时的小时、分钟和秒数,涵盖了从头文件到实现文件的关键步骤,适合iOS开发者参考学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建一个类继承自UILabel.(用来显示 时 分 秒)

.h文件

//
//  TimeLable.h
//  timer
//
//  Created by limin on 17/8/15.
//  Copyright © 2017年 none. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface TimeLable : UILabel
@property (nonatomic,assign)NSInteger second;
@property (nonatomic,assign)NSInteger minute;
@property (nonatomic,assign)NSInteger hour;
@end
.m文件

//
//  TimeLable.m
//  timer
//
//  Created by limin on 17/8/15.
//  Copyright © 2017年 none. All rights reserved.
//

#import "TimeLable.h"
@interface TimeLable ()
@property (nonatomic, strong)NSTimer *timer;
@end
@implementation TimeLable

- (id)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        self.textAlignment = NSTextAlignmentCenter;
        self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeHeadle) userInfo:nil repeats:YES];
    }
    return self;
}

- (void)timeHeadle{
    
    self.second--;
    if (self.second==-1) {
        self.second=59;
        self.minute--;
        if (self.minute==-1) {
            self.minute=59;
            self.hour--;
        }
    }
    if (self.hour>0) {
        self.text = [NSString stringWithFormat:@"%.2ld:%.2ld:%.2ld",(long)self.hour,(long)self.minute,(long)self.second];
    }else if (self.hour==0) {
        self.text = [NSString stringWithFormat:@"%.2ld:%.2ld",(long)self.minute,(long)self.second];
    }else if (self.minute==0)
    {
        self.text = [NSString stringWithFormat:@"%.2ld",(long)self.second];
    }
    
    if (self.second==0 && self.minute==0 && self.hour==0) {
        [self.timer invalidate];
        self.timer = nil;
    }
}


@end

2.在需要倒计时器的类中导入头文件即可使用,示例:

#import "TimeLable.h"
- (void)viewDidLoad {
    [super viewDidLoad];
    TimeLable *lable = [[TimeLable alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    lable.hour = 10;
    lable.minute = 1;
    lable.second = 00;
    [self.view addSubview:lable];
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值