星空网 > 软件开发 > 操作系统

POP缩放动画

POP缩放动画

POP缩放动画images/loading.gif' data-original="http://images2015.cnblogs.com/blog/607542/201606/607542-20160605102114961-344932282.gif" />

 

效果

POP缩放动画

 

源码

https://github.com/YouXianMing/Animations

//// SpringScaleViewController.m// Animations//// Created by YouXianMing on 16/6/3.// Copyright © 2016年 YouXianMing. All rights reserved.//#import "SpringScaleViewController.h"#import "UIView+SetRect.h"#import "UIFont+Fonts.h"#import "GCD.h"#import "POP.h"@interface SpringScaleViewController ()@property (nonatomic, strong) UIView *scaleView;@end@implementation SpringScaleViewController- (void)setup {  [super setup];    // Label  UILabel *label = [[UILabel alloc] init];  label.text   = @"P  P";  label.font   = [UIFont HYQiHeiWithFontSize:140];  [label sizeToFit];  label.center  = self.contentView.middlePoint;  [self.contentView addSubview:label];    // Circle  self.scaleView          = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];  self.scaleView.backgroundColor  = [[UIColor colorWithRed:0.203 green:0.598 blue:0.859 alpha:1] colorWithAlphaComponent:0.95f];  self.scaleView.layer.cornerRadius = self.scaleView.width / 2.f;  self.scaleView.center       = self.contentView.middlePoint;  [self.contentView addSubview:self.scaleView];    // Start animation after 1 second.  [GCDQueue executeInMainQueue:^{        [self scaleAnimation];      } afterDelaySecs:1.f];}- (void)scaleAnimation {  POPBasicAnimation *scaleAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewScaleXY];    scaleAnimation.name        = @"scaleSmallAnimation";  scaleAnimation.delegate      = self;    scaleAnimation.duration      = 0.15f;  scaleAnimation.toValue      = [NSValue valueWithCGPoint:CGPointMake(1.25, 1.25)];\    [self.scaleView pop_addAnimation:scaleAnimation forKey:nil];}- (void)pop_animationDidStop:(POPAnimation *)anim finished:(BOOL)finished {  if ([anim.name isEqualToString:@"scaleSmallAnimation"]) {        POPSpringAnimation *scaleAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewScaleXY];        scaleAnimation.name        = @"SpringAnimation";    scaleAnimation.delegate      = self;        scaleAnimation.toValue       = [NSValue valueWithCGPoint:CGPointMake(1, 1)];    scaleAnimation.velocity      = [NSValue valueWithCGPoint:CGPointMake(-2, -2)];    scaleAnimation.springBounciness  = 20.f;    scaleAnimation.springSpeed     = 10.f;    scaleAnimation.dynamicsTension   = 700.f;    scaleAnimation.dynamicsFriction  = 7.f;    scaleAnimation.dynamicsMass    = 3.f;        [self.scaleView pop_addAnimation:scaleAnimation forKey:nil];      } else if ([anim.name isEqualToString:@"SpringAnimation"]) {      [self performSelector:@selector(scaleAnimation) withObject:nil afterDelay:1];  }}- (void)viewWillDisappear:(BOOL)animated {  [super viewWillDisappear:animated];    [[self class] cancelPreviousPerformRequestsWithTarget:self];}@end

 

细节

1. 参数设置有技巧,可以参考如下所示(项目中的POPSpringParameterController):

POP缩放动画

2. 动画效果是通过组合两个动画而来的,要注意设置代理:

POP缩放动画

 




原标题:POP缩放动画

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

国外仓储服务:https://www.goluckyvip.com/tag/95389.html
上海 海外仓:https://www.goluckyvip.com/tag/95393.html
中国海外仓库:https://www.goluckyvip.com/tag/95395.html
北京市海外仓:https://www.goluckyvip.com/tag/95398.html
ecowas:https://www.goluckyvip.com/tag/954.html
宁波 海外仓:https://www.goluckyvip.com/tag/95400.html
武陵山大裂谷周围景点 武陵山大裂谷周围景点图片:https://www.vstour.cn/a/411233.html
南美旅游报价(探索南美洲的旅行费用):https://www.vstour.cn/a/411234.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流