123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- //
- // KWTimeEndView.m
- // westkissMob
- //
- // Created by iOS on 2022/9/6.
- //
- #import "KWTimeEndView.h"
- @interface KWTimeEndView ()
- @property (nonatomic, strong) UILabel *hourLb;
- @property (nonatomic, strong) UILabel *hourSpaceLb;
- @property (nonatomic, strong) UILabel *minLb;
- @property (nonatomic, strong) UILabel *minSpaceLb;
- @property (nonatomic, strong) UILabel *secLb;
- @property (nonatomic, strong) NSTimer *timer;
- @end
- @implementation KWTimeEndView
- -(void)setTime:(NSTimeInterval)time {
- _time = time;
- [self showTime];
-
- }
- - (void)stopTimer {
- if (self.timer != nil) {
- [self.timer invalidate];
- self.timer = nil;
- }
- }
- - (void)startTimer {
- if (self.timer != nil) {
- [self.timer invalidate];
- self.timer = nil;
- }
- self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction) userInfo:nil repeats:true];
- }
- - (void)dealloc {
- [self stopTimer];
- }
- -(void)timerAction {
- self.time -= 1;
- if (_time <= 0 && self.timer != nil) {
- [self stopTimer];
- }
- }
- -(void)showTime {
- NSInteger hour = ((NSInteger)self.time)/(60*60);
- NSInteger sec = ((NSInteger)self.time)%60;
- NSInteger min = (((NSInteger)self.time) - hour*60*60 - sec)/60;
- self.hourLb.text = [NSString stringWithFormat:@"%02ld",hour];
- self.minLb.text = [NSString stringWithFormat:@"%02ld",min];
- self.secLb.text = [NSString stringWithFormat:@"%02ld",sec];
-
- }
- - (instancetype)initWithFrame:(CGRect)frame {
- self = [super initWithFrame:frame];
- if (self) {
- [self configSubV];
- }
- return self;
- }
- -(void)configSubV {
- self.hourLb = [KWTimeEndView createTimeLB];
- self.minLb = [KWTimeEndView createTimeLB];
- self.secLb = [KWTimeEndView createTimeLB];
- self.hourSpaceLb = [KWTimeEndView createSpaceLB];
- self.minSpaceLb = [KWTimeEndView createSpaceLB];
- UIStackView *contentStackV = [KWTimeEndView createStackV];
- [contentStackV addArrangedSubview:_hourLb];
- [contentStackV addArrangedSubview:_hourSpaceLb];
- [contentStackV addArrangedSubview:_minLb];
- [contentStackV addArrangedSubview:_minSpaceLb];
- [contentStackV addArrangedSubview:_secLb];
-
- [self addSubview:contentStackV];
- [contentStackV mas_makeConstraints:^(MASConstraintMaker *make) {
- make.center.equalTo(self);
- }];
-
- [self.hourLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.width.height.equalTo(@21);
- }];
- [self.minLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.width.height.equalTo(@21);
- }];
- [self.secLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.width.height.equalTo(@21);
- }];
- [self.minSpaceLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.equalTo(@21);
- make.width.equalTo(@3);
- }];
- [self.hourSpaceLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.equalTo(@21);
- make.width.equalTo(@3);
- }];
- }
- + (UILabel *)createTimeLB {
- UILabel *lb = [[UILabel alloc] init];
- lb.font = [UIFont fontWithName:Rob_Bold size:12];
- lb.textColor = [UIColor whiteColor];
- lb.textAlignment = NSTextAlignmentCenter;
- lb.backgroundColor = [UIColor blackColor];
- return lb;
- }
- + (UILabel *)createSpaceLB {
- UILabel *lb = [[UILabel alloc] init];
- lb.font = [UIFont fontWithName:Rob_Bold size:12];
- lb.textColor = [UIColor blackColor];
- lb.text = @":";
- lb.textAlignment = NSTextAlignmentCenter;
- lb.backgroundColor = [UIColor clearColor];
- return lb;
- }
- + (UIStackView *)createStackV {
- UIStackView *v = [[UIStackView alloc] init];
- v.alignment = UIStackViewAlignmentFill;
- v.distribution = UIStackViewDistributionFill;
- v.spacing = 3;
- v.axis = UILayoutConstraintAxisHorizontal;
- return v;
- }
- @end
|