您的位置:首页 > 产品设计 > UI/UE

UILabel的缩放效果

2016-02-04 11:04 337 查看
UILabel的缩放效果



效果图



源码
https://github.com/YouXianMing/Animations

//
//  ScaleLabel.h
//  Animations
//
//  Created by YouXianMing on 15/12/17.
//  Copyright © 2015年 YouXianMing. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ScaleLabel : UIView

/**
*  Label's text.
*/
@property (nonatomic, strong) NSString *text;

/**
*  Label's color.
*/
@property (nonatomic, strong) UIFont   *font;

/**
*  The Label's scale before the animation start.
*/
@property (nonatomic, assign) CGFloat   startScale;

/**
*  The label's scale after the animation ended.
*/
@property (nonatomic, assign) CGFloat   endScale;

/**
*  The show label's color.
*/
@property (nonatomic, strong) UIColor  *backedLabelColor;

/**
*  The animated label's color.
*/
@property (nonatomic, strong) UIColor  *colorLabelColor;

/**
*  Start animation.
*/
- (void)startAnimation;

@end


//
//  ScaleLabel.m
//  Animations
//
//  Created by YouXianMing on 15/12/17.
//  Copyright © 2015年 YouXianMing. All rights reserved.
//

#import "ScaleLabel.h"

@interface ScaleLabel ()

@property (nonatomic, strong) UILabel  *backedLabel;
@property (nonatomic, strong) UILabel  *colorLabel;

@end

@implementation ScaleLabel

- (instancetype)initWithFrame:(CGRect)frame {

if (self = [super initWithFrame:frame]) {

_backedLabel = [[UILabel alloc] initWithFrame:self.bounds];
_colorLabel  = [[UILabel alloc] initWithFrame:self.bounds];

_backedLabel.alpha = 0;
_colorLabel.alpha  = 0;

_backedLabel.textAlignment = NSTextAlignmentCenter;
_colorLabel.textAlignment  = NSTextAlignmentCenter;

[self addSubview:_backedLabel];
[self addSubview:_colorLabel];
}

return self;
}

- (void)startAnimation {

if (_endScale == 0) {

_endScale = 2.f;
}

[UIView animateWithDuration:1 delay:0 usingSpringWithDamping:7 initialSpringVelocity:4 options:UIViewAnimationOptionCurveEaseInOut
animations:^{

_backedLabel.alpha     = 1.f;
_backedLabel.transform = CGAffineTransformMake(1, 0, 0, 1, 0, 0);

_colorLabel.alpha      = 1.f;
_colorLabel.transform  = CGAffineTransformMake(1, 0, 0, 1, 0, 0);;

} completion:^(BOOL finished) {

[UIView animateWithDuration:2 delay:0.5 usingSpringWithDamping:7 initialSpringVelocity:4
options:UIViewAnimationOptionCurveEaseInOut
animations:^{

_colorLabel.alpha     = 0.f;
_colorLabel.transform = CGAffineTransformMake(_endScale, 0, 0, _endScale, 0, 0);

} completion:nil];
}];
}

#pragma mark - Overwrite getter & setter methods.
@synthesize text = _text;
- (void)setText:(NSString *)text {

_text             = text;
_backedLabel.text = text;
_colorLabel.text  = text;
}

- (NSString *)text {

return _text;
}

@synthesize startScale = _startScale;
- (void)setStartScale:(CGFloat)startScale {

_startScale            = startScale;
_backedLabel.transform = CGAffineTransformMake(startScale, 0, 0, startScale, 0, 0);
_colorLabel.transform  = CGAffineTransformMake(startScale, 0, 0, startScale, 0, 0);
}

- (CGFloat)startScale {

return _startScale;
}

@synthesize font = _font;
- (void)setFont:(UIFont *)font {

_font             = font;
_backedLabel.font = font;
_colorLabel.font  = font;
}

- (UIFont *)font {

return _font;
}

@synthesize backedLabelColor = _backedLabelColor;
- (void)setBackedLabelColor:(UIColor *)backedLabelColor {

_backedLabelColor      = backedLabelColor;
_backedLabel.textColor = backedLabelColor;
}

@synthesize colorLabelColor = _colorLabelColor;
- (void)setColorLabelColor:(UIColor *)colorLabelColor {

_colorLabelColor      = colorLabelColor;
_colorLabel.textColor = colorLabelColor;
}

@end


细节



标签: iOS, 重要, 效果, 动画, 动画项目合集系列

好文要顶 已关注 收藏该文








YouXianMing

关注 - 0

粉丝 - 273

我在关注他 取消关注

0

0

(请您对文章做出评价)

« 上一篇:产生渐变色的view

» 下一篇:制作
OS X El Capitan 启动盘

posted @ 2015-12-17 20:00 YouXianMing 阅读(129)
评论(0) 编辑 收藏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: