倒计时按钮效果

倒计时按钮效果

by 伍雪颖

@implementationCountButton {

UIColor
*normal_bgColor;

UIColor *enabled_bgColor;

NSTimer *timer;

NSInteger startCount;

NSInteger originNum;

UILabel *timeLabel;

}

- (id)initWithFrame:(CGRect)frame
{

self = [super
initWithFrame:frame];

if (self) {

normal_bgColor = [UIColor
redColor];

enabled_bgColor = [UIColor
lightGrayColor];

startCount =
0;

originNum =
0;

[self
setTitleColor:[UIColor
whiteColor]
forState:UIControlStateNormal];

self.titleLabel.font
= [UIFont
systemFontOfSize:17];

self.backgroundColor
=
normal_bgColor;

startCount =
5;

originNum =
5;

[self
addLabel];

[self
addTarget:self
action:@selector(startCountDown)
forControlEvents:UIControlEventTouchUpInside];

}

return
self;

}

- (void)startCountDown {

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

self.backgroundColor
=
enabled_bgColor;

self.enabled
=
NO;

[self
numAnimation];

}

- (void)countDown {

startCount--;

timeLabel.text
=
@(startCount).stringValue;

if (startCount
<
0) {

if (timer
==
nil) {

return;

}

[timeLabel.layer
removeAllAnimations];

timeLabel.text
=
@(originNum).stringValue;

[timer
invalidate];

timer =
nil;

self.enabled
=
YES;

startCount =
originNum;

self.backgroundColor
=
normal_bgColor;

}

}

- (void)numAnimation {

CAKeyframeAnimation *scale = [CAKeyframeAnimation
animationWithKeyPath:@"transform.scale"];

scale.keyTimes
=
@[@0,@0.5,@1];

scale.values
=
@[@1,@1.5,@2];

scale.duration
=
1;

CAKeyframeAnimation *opacity = [CAKeyframeAnimation
animationWithKeyPath:@"opacity"];

opacity.keyTimes
=
@[@0,@0.5,@1];

opacity.values
=
@[@1,@0.5,@0];

opacity.duration
=
1;

CAAnimationGroup *animGroup = [CAAnimationGroup
animation];

animGroup.animations
=
@[scale, opacity];

animGroup.duration
=
1;

animGroup.repeatCount
=
HUGE;

animGroup.removedOnCompletion
=
false;

animGroup.beginTime
=
CACurrentMediaTime();

[timeLabel.layer
addAnimation:animGroup
forKey:@"animatjion"];

[self.layer
addSublayer:timeLabel.layer];

}

- (void)addLabel {

timeLabel = [[UILabel
alloc]
init];

timeLabel.frame
=
CGRectMake(0,
0,
CGRectGetWidth(self.frame),
CGRectGetHeight(self.frame));

timeLabel.backgroundColor
= [UIColor
clearColor];

timeLabel.font
= [UIFont
systemFontOfSize:17];

timeLabel.textAlignment
=
NSTextAlignmentCenter;

timeLabel.text
=
@(originNum).stringValue;

[self
addSubview:timeLabel];

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-09 01:44:56

倒计时按钮效果的相关文章

按钮倒计时可用效果实例代码

按钮倒计时可用效果实例代码:很多网页都有这样的效果,那就是按钮必须在指定的倒计时之后才是可用的,下面就通过代码实例介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title&

iOS 短信验证码倒计时按钮的实现

验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的小伙伴们可以参考一下: 实现思路: 创建按钮,添加点击方法: 用NSTimer定时器,每秒执行一次,定时改变Button的title,改变Button的样式,设置Button不可点击: 若倒计时结束,定时器关闭,并改变Button的样式,可以点击: 代码如下: 在按钮的点击事件里调用该方法      -(void)openCountdown{ __block NSInteger ti

CSS3模拟实现iphone返回按钮效果

CSS3模拟实现iphone返回按钮效果:大家知道现在CSS3可以实现各种漂亮的效果,以前只有图片可以实现的效果,现在CSS3实现起来难度也不是太高.下面分享一段使用CSS3实现的iphone返回按钮的效果,其实这种CSS3代码根本就不用分析,只要给出代码实例,自己就完全可以看明白,当然你要首先知道各个属性的作用是什么,代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q

css3代码实现的鼠标悬浮按钮效果代码实例

css3代码实现的鼠标悬浮按钮效果代码实例:在css3之前,鼠标悬浮于按钮之上,无非是设置按钮的大小.字体颜色或者背景图片等简单的项目,但是css3的出现,可以让设置变得丰富多彩,下面就是一个css3实现的此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://

仿淘宝分页按钮效果简单美观易使用的JS分页控件

分页按钮思想: 1.少于9页,全部显示 2.大于9页,1.2页显示,中间页码当前页为中心,前后各留两个页码 附件中有完整例子的压缩包下载.已更新到最新版本 先看效果图: 01输入框焦点效果 02效果 模仿淘宝的分页按钮效果控件kkpager  JS代码: Js代码   var kkpager = { //divID pagerid : 'div_pager', //当前页码 pno : 1, //总页码 total : 1, //总数据条数 totalRecords : 0, //是否显示总页数

山寨“饿了么”应用中添加菜品数量按钮效果

山寨“饿了么”应用中添加菜品数量按钮效果 本人视频教程系类   iOS中CALayer的使用 最终效果: 山寨源头: 源码:(此源码解决了重用问题,可以放心的放在cell中使用) AddAndDeleteButton.h 与 AddAndDeleteButton.m // // AddAndDeleteButton.h // LabelControll // // Created by YouXianMing on 14/12/11. // Copyright (c) 2014年 YouXian

按钮效果

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> .mybtn{ display: inline-block; padding: 5px 8px; border: .5px solid #e8e8e8; border-radius: 5px; color:

delphi倒计时按钮写法

procedure TForm1.FormActivate(Sender: TObject); var i: Integer; begin btn8.Enabled:=False; for I := 5 downto 0 do begin Sleep(1000); btn8.Caption := Format('请认真查看(%d)', [I]); //ShowMessage(IntToStr(i)); if I = 0 then btn8.Enabled:=True; Application.P

tookit2D使用3——给精灵添加GUI按钮效果

1 使用tookit2d中GUI实现按钮效果 1.1 component->2D tookit->deprecated->GUI—>toolkit2D button 1.2 添加鼠标按下抬起的精灵,添加声音,添加被绑定的在hirerarchy中的对象,添加message name(即脚本中自定义的函数名) egpublic class btn_script : MonoBehaviour { void btn_msg() { if (this.name == "btn_p