Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
76 lines (65 loc) · 2.36 KB

File metadata and controls

76 lines (65 loc) · 2.36 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//
// PhoneCodeButton.m
// CodingMart
//
// Created by Ease on 15/12/15.
// Copyright © 2015年 net.coding. All rights reserved.
//
#import "PhoneCodeButton.h"
@interface PhoneCodeButton ()
@property (nonatomic, strong, readwrite) NSTimer *timer;
@property (assign, nonatomic) NSTimeInterval durationToValidity;
@property (strong, nonatomic) UIView *lineView;
@end
@implementation PhoneCodeButton
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.titleLabel.font = [UIFont systemFontOfSize:14];
self.enabled = YES;
_lineView = [[UIView alloc] initWithFrame:CGRectMake(-10, 5, 0.5, CGRectGetHeight(frame) - 2*5)];
_lineView.backgroundColor = [UIColor colorWithHexString:@"0xD8D8D8"];
[self addSubview:_lineView];
}
return self;
}
- (void)setEnabled:(BOOL)enabled{
[super setEnabled:enabled];
UIColor *foreColor = [UIColor colorWithHexString:enabled? @"0x3BBD79": @"0xCCCCCC"];
[self setTitleColor:foreColor forState:UIControlStateNormal];
if (enabled) {
[self setTitle:@"发送验证码" forState:UIControlStateNormal];
}else if ([self.titleLabel.text isEqualToString:@"发送验证码"]){
[self setTitle:@"正在发送..." forState:UIControlStateNormal];
}
}
- (void)startUpTimer{
_durationToValidity = 60;
if (self.isEnabled) {
self.enabled = NO;
}
[self setTitle:[NSString stringWithFormat:@"%.0f", _durationToValidity] forState:UIControlStateNormal];
self.timer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(redrawTimer:)
userInfo:nil
repeats:YES];
}
- (void)invalidateTimer{
if (!self.isEnabled) {
self.enabled = YES;
}
[self.timer invalidate];
self.timer = nil;
}
- (void)redrawTimer:(NSTimer *)timer {
_durationToValidity--;
if (_durationToValidity > 0) {
self.titleLabel.text = [NSString stringWithFormat:@"%.0f", _durationToValidity];//防止 button_title 闪烁
[self setTitle:[NSString stringWithFormat:@"%.0f", _durationToValidity] forState:UIControlStateNormal];
}else{
[self invalidateTimer];
}
}
@end
Morty Proxy This is a proxified and sanitized view of the page, visit original site.