博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
倒计时特效的CountAnimationLabel
阅读量:6258 次
发布时间:2019-06-22

本文共 4168 字,大约阅读时间需要 13 分钟。

倒计时特效的CountAnimationLabel

效果:

源码:

CountAnimationLabel.h 与 CountAnimationLabel.m

////  CountAnimationLabel.h//  YouXianClock////  Created by YouXianMing on 14-10-14.//  Copyright (c) 2014年 YouXianMing. All rights reserved.//#import 
@interface CountAnimationLabel : UIView@property (nonatomic, strong) NSString *text; // 文本的文字@property (nonatomic, strong) UIFont *font; // 文本的字体@property (nonatomic, assign) CGFloat startScale; // 最初处于alpha = 0状态时的scale值@property (nonatomic, assign) CGFloat endScale; // 最后处于alpha = 0状态时的scale值@property (nonatomic, strong) UIColor *backedLabelColor; // 不会消失的那个label的颜色@property (nonatomic, assign) NSTimeInterval fadeInDuration; // 默认值为1s@property (nonatomic, assign) NSTimeInterval fadeOutDuration; // 默认值为2s@property (nonatomic, assign) NSTimeInterval showDuration; // 默认值为0.5s@property (nonatomic, assign) BOOL removeOnComplete; // 动画结束后是否被移除掉- (void)startAnimation;@end
////  CountAnimationLabel.m//  YouXianClock////  Created by YouXianMing on 14-10-14.//  Copyright (c) 2014年 YouXianMing. All rights reserved.//#import "CountAnimationLabel.h"@interface CountAnimationLabel ()@property (nonatomic, strong) UILabel  *backedLabel;@end@implementation CountAnimationLabel- (instancetype)initWithFrame:(CGRect)frame{    self = [super initWithFrame:frame];    if (self) {        _backedLabel = [[UILabel alloc] initWithFrame:self.bounds];                // 初始时的alpha值为0        _backedLabel.alpha = 0;                // 文本居中        _backedLabel.textAlignment = NSTextAlignmentCenter;                [self addSubview:_backedLabel];    }    return self;}- (void)startAnimation{    // 判断endScale的值    if (_endScale == 0) {        _endScale = 2.f;    }        // 开始第一次动画    [UIView animateWithDuration:(_fadeInDuration > 0 ?_fadeInDuration : 1.f)                          delay:0         usingSpringWithDamping:7          initialSpringVelocity:4                        options:UIViewAnimationOptionCurveEaseInOut                     animations:^{                         // 恢复正常尺寸                         _backedLabel.alpha     = 1.f;                         _backedLabel.transform = CGAffineTransformMake(1, 0, 0, 1, 0, 0);                     }                     completion:^(BOOL finished) {                                                  // 开始第二次动画                         [UIView animateWithDuration:(_fadeOutDuration > 0 ? _fadeOutDuration : 2.f)                                               delay:(_showDuration > 0 ? _showDuration : 0.5f)                              usingSpringWithDamping:7                               initialSpringVelocity:4                                             options:UIViewAnimationOptionCurveEaseInOut                                          animations:^{                                              _backedLabel.alpha     = 0.f;                                              _backedLabel.transform = CGAffineTransformMake(_endScale, 0, 0, _endScale, 0, 0);                                          }                                          completion:^(BOOL finished) {                                              if (_removeOnComplete == YES) {                                                  [self removeFromSuperview];                                              }                                          }];                     }];}#pragma mark - 重写setter,getter方法#pragma mark - 重写setter方法@synthesize text = _text;- (void)setText:(NSString *)text{    _text             = text;    _backedLabel.text = text;}- (NSString *)text{    return _text;}@synthesize startScale = _startScale;- (void)setStartScale:(CGFloat)startScale{    _startScale = startScale;    _backedLabel.transform = CGAffineTransformMake(startScale, 0, 0, startScale, 0, 0);}- (CGFloat)startScale{    return _startScale;}@synthesize font = _font;- (void)setFont:(UIFont *)font{    _font = font;    _backedLabel.font = font;}- (UIFont *)font{    return _font;}@synthesize backedLabelColor = _backedLabelColor;- (void)setBackedLabelColor:(UIColor *)backedLabelColor{    _backedLabelColor = backedLabelColor;    _backedLabel.textColor = backedLabelColor;}@end

以下是使用详情:

转载地址:http://ktasa.baihongyu.com/

你可能感兴趣的文章
dll的概念 dll导出变量 函数 类
查看>>
HDUOJ------------1051Wooden Sticks
查看>>
Winform开发框架之权限管理系统改进的经验总结(4)--用户分级管理
查看>>
SQLSERVER PRINT语句的换行
查看>>
Web Service 的工作原理
查看>>
tesseract ocr文字识别Android实例程序和训练工具全部源代码
查看>>
嵌入式操作系统的调试
查看>>
DroidPHP-A PHP Webserver for android
查看>>
iOS用全局宏的概念理解xcode中的设置 preprocessor macros
查看>>
浮沉乱世,一些话对自己说
查看>>
桌面应用框架 OneRing
查看>>
解决Boost.Regex对中文支持不好的问题
查看>>
Error : Weblogic Maven Plugin deployment WebLogic 12c
查看>>
W3C小组宣布:HTML5标准制定完成
查看>>
dispatch_group_async 使用详解
查看>>
3d引擎列表
查看>>
[Ant] Ant之MacroDef—“宏
查看>>
WEB架构师成长之路-架构师都要懂哪些知识 转
查看>>
C#中使用TCP通信
查看>>
Swift入门篇-swift简介
查看>>