quartz验证码发送器_iOS 做验证码发送 定时器 避免按钮闪烁

今天做一个功能,一开始将某按钮置灰,然后倒计时60秒。每秒钟都刷新按钮的文字,倒计时结束后,使按钮可用。很快就做好了,不过发现一个问题,就是按钮会闪烁,跟星星似的。我的代码是:

_countDown = 60;

UIColor *color = self.canSend ? [UIColor colorWithRed:40.0/255.0 green:90.0/255.0f blue:190.0/255.0f alpha:1.0f] : [UIColor grayColor];

self.smsButton = [UIButton createButtonWithStyle:UIButtonTypeRoundedRect

withFrame:CGRectMake(80, 0, 100, 30)

withTitle:NSLocalizedString(@"重发验证码", nil)

withTitleColor:color

withBackgroudColor:nil

withNormalImage:nil

withHighlightedImage:nil

withNormalBackgroudImage:nil

withHighlightedBackgroundImage:nil

withTarge:self

withAction:@selector(startTimer:)

actionHandle:^(UIButton *sender) {

}];

- (void)startTimer {

[self.smsButton setEnabled:NO];

_timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

}

- (void)onTimer {

if (_countDown > 0) {

[self.smsButton setTitle:[NSString stringWithFormat:@"%d秒重新获取", _countDown] forState:UIControlStateDisabled];

_countDown--;

} else {

_countDown = 60;

[_timer invalidate];

_timer = nil;

[self.smsButton setTitle:@"60秒重新获取" forState:UIControlStateDisabled];

[self.smsButton setTitle:@"重发验证码" forState:UIControlStateNormal];

[self.smsButton setEnabled:YES];

}

}

解决方法:

将UIButton的类型由system改为custom就OK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值