博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CASpringAnimation的使用
阅读量:6243 次
发布时间:2019-06-22

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

CASpringAnimation的使用

 

效果

 

源码

////  CASpringAnimationController.m//  Animations////  Created by YouXianMing on 16/1/19.//  Copyright © 2016年 YouXianMing. All rights reserved.//#import "CASpringAnimationController.h"#import "RangeValueView.h"#import "WxHxD.h"#import "UIView+SetRect.h"@interface CASpringAnimationController ()@property (nonatomic, strong) UIButton       *showView;@property (nonatomic, strong) RangeValueView *stiffnessView;@property (nonatomic, strong) RangeValueView *dampingView;@property (nonatomic, strong) RangeValueView *massView;@property (nonatomic, strong) RangeValueView *initialVelocityView;@end@implementation CASpringAnimationController- (void)setup {        [super setup];        [self initRangeViews];        [self initButton];}- (void)initButton {        CGFloat gap = Height - 60 - 40*4 - 64;        CGFloat width                    = 50.f;    self.showView                    = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, width, width)];    self.showView.center             = CGPointMake(self.contentView.middleX, 64 + gap / 2.f);    self.showView.backgroundColor    = [UIColor cyanColor];    self.showView.layer.cornerRadius = width / 2.f;    self.showView.x                  = Width / 2.f - 50;    [self.showView addTarget:self action:@selector(doAnimation) forControlEvents:UIControlEventTouchUpInside];    [self.contentView addSubview:self.showView];}- (void)doAnimation {        CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:@"position.x"];    springAnimation.stiffness          = self.stiffnessView.currentValue;    springAnimation.mass               = self.massView.currentValue;    springAnimation.damping            = self.dampingView.currentValue;    springAnimation.initialVelocity    = self.initialVelocityView.currentValue;    springAnimation.duration           = springAnimation.settlingDuration;        springAnimation.fromValue    = @(Width / 2.f - 50);    springAnimation.toValue      = @(Width / 2.f + 50);    self.showView.layer.position = CGPointMake(Width / 2.f + 50, self.showView.layer.position.y);        [self.showView.layer addAnimation:springAnimation forKey:nil];}- (void)initRangeViews {        self.stiffnessView = [RangeValueView rangeValueViewWithFrame:CGRectMake(10, Height - 60, Width - 20, 0)                                                            name:@"硬度  Stiffness"                                                        minValue:10.f                                                        maxValue:200.f                                                    defaultValue:100.f];    [self.contentView addSubview:self.stiffnessView];            self.dampingView = [RangeValueView rangeValueViewWithFrame:CGRectMake(10, Height - 60 - 40, Width - 20, 0)                                                          name:@"阻尼  Damping"                                                      minValue:0.1f                                                      maxValue:10.f                                                  defaultValue:5.f];    [self.contentView addSubview:self.dampingView];            self.massView = [RangeValueView rangeValueViewWithFrame:CGRectMake(10, Height - 60 - 40*2, Width - 20, 0)                                                       name:@"质量  Mass"                                                   minValue:0.1                                                   maxValue:20.f                                               defaultValue:1.f];    [self.contentView addSubview:self.massView];            self.initialVelocityView = [RangeValueView rangeValueViewWithFrame:CGRectMake(10, Height - 60 - 40*3, Width - 20, 0)                                                                  name:@"速度  Velocity"                                                              minValue:-20.f                                                              maxValue:20.f                                                          defaultValue:0.f];    [self.contentView addSubview:self.initialVelocityView];}@end

细节

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

你可能感兴趣的文章
阿里钉钉VS企业微信 谁才是企业级一哥?
查看>>
2015-2020智慧城市物联网市场复合年增长率达23.2%
查看>>
做好数据分析让物联网数据价值最大化
查看>>
OpenStack Days走进北京 主角是用户
查看>>
JVM问题诊断常用命令:jinfo,jmap,jstack
查看>>
叶成辉成神州控股新任CEO 曾在IBM/EMC任职
查看>>
中小企业客户营收增长将成微博2016年主推动力
查看>>
四川能投成功进军智慧城市投资市场
查看>>
雅虎公开三封收到的FBI国家安全信函
查看>>
云计算在大数据形式下的发展
查看>>
如何更好地进行机房项目的控制成本
查看>>
爱立信高通中兴等成立Avanci专利授权平台 旨在加速物联网发展
查看>>
美情报公司:勒索病毒WannaCry的创作者可能是中国人
查看>>
华科技:以市场为导向 以用户体验为标准
查看>>
诺基亚携手Facebook联合开展跨大西洋现场测试
查看>>
如何检查MySQL数据库的主从延时?
查看>>
红炜:改变光伏电站融资难也需水到渠成
查看>>
三星用户迎利好 三星将推月度安全更新
查看>>
网络时代安全问题凸显 互联网金融如何有效避开痛点?
查看>>
移动OA如何治愈外出办公“焦虑症”?
查看>>