CABasicAnimation - 上下滑动动画
#import <UIKit/UIKit.h> @interface TJProgressView : UIView
@property(nonatomic,assign)CGFloat progressValue;
- (void)showInView:(UIView *)baseView;
@end
//
// TJProgressView.m
// CurveProgressDemo
//
// Created by MJ on 15/6/12.
// Copyright (c) 2015年 SNWFMJ. All rights reserved.
// #import "TJProgressView.h"
#define kContainerViewSize CGSizeMake(30.f, 25.f)
#define kPadding 5.f
@interface TJProgressView ()
{
UIView *leftView;
UIView *middleView;
UIView *rightView;
UIView *containerView; }
@end
@implementation TJProgressView
- (instancetype)init
{
if (self = [super init])
{
[self setUp];
}
return self;
}
- (void)setUp
{
containerView = [[UIView alloc ]init];
containerView.translatesAutoresizingMaskIntoConstraints = NO;
containerView.backgroundColor = [UIColor clearColor];
[self addSubview:containerView];
NSArray *containerView_H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[containerView]|" options: metrics:nil views:NSDictionaryOfVariableBindings(containerView)];
NSArray *containerView_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[containerView]|" options: metrics:nil views:NSDictionaryOfVariableBindings(containerView)];
[self addConstraints:containerView_H];
[self addConstraints:containerView_V]; [self test]; }
- (void)test
{
leftView = [[UIView alloc]init];
leftView.translatesAutoresizingMaskIntoConstraints = NO;
leftView.backgroundColor = [UIColor yellowColor];
[containerView addSubview:leftView];
NSArray *leftView_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[leftView]|" options: metrics:nil views:NSDictionaryOfVariableBindings(leftView)];
[containerView addConstraints:leftView_V]; middleView = [[UIView alloc]init];
middleView.translatesAutoresizingMaskIntoConstraints = NO;
middleView.backgroundColor = [UIColor redColor];
[containerView addSubview:middleView];
NSArray *middleView_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[middleView]|" options: metrics:nil views:NSDictionaryOfVariableBindings(middleView)];
[containerView addConstraints:middleView_V]; rightView = [[UIView alloc]init];
rightView.translatesAutoresizingMaskIntoConstraints = NO;
rightView.backgroundColor = [UIColor blueColor];
[containerView addSubview:rightView];
NSArray *rightView_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[rightView]|" options: metrics:nil views:NSDictionaryOfVariableBindings(rightView)];
[containerView addConstraints:rightView_V];
NSDictionary *dic_paddingConstraint = @{
@"padding":@(kPadding) };
NSArray *allView_H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[leftView]-padding-[middleView(leftView)]-padding-[rightView(middleView)]-0-|" options: metrics:dic_paddingConstraint views:NSDictionaryOfVariableBindings(leftView,middleView,rightView)];
[containerView addConstraints:allView_H]; }
- (void)showInView:(UIView *)baseView
{
NSDictionary *dic_selfConstraint = @{
@"height":@(kContainerViewSize.height),
@"width":@(kContainerViewSize.width) };
self.translatesAutoresizingMaskIntoConstraints = NO;
[baseView addSubview:self]; NSLayoutConstraint *self_CenterX = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:baseView attribute:NSLayoutAttributeCenterX multiplier: constant:];
NSLayoutConstraint *self_CenterY = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:baseView attribute:NSLayoutAttributeCenterY multiplier: constant:]; NSArray *self_H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[self(width)]" options: metrics:dic_selfConstraint views:NSDictionaryOfVariableBindings(self)];
NSArray *self_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[self(height)]" options: metrics:dic_selfConstraint views:NSDictionaryOfVariableBindings(self)]; [baseView addConstraints:@[self_CenterX,self_CenterY]];
[baseView addConstraints:self_H];
[baseView addConstraints:self_V]; }
- (void)setProgressValue:(CGFloat)progressValue
{
_progressValue = progressValue; [self addAnimation:containerView.layer progressValue:_progressValue]; }
- (void)addAnimation:(CALayer *)layer progressValue:(CGFloat)value
{
CABasicAnimation *leftAnimation = [CABasicAnimation animationWithKeyPath:@"position.y"];
leftAnimation.fromValue =@;
leftAnimation.toValue = @(value*kContainerViewSize.height);
leftAnimation.repeatCount = MAXFLOAT;
leftAnimation.duration = 0.5f; [layer addAnimation:leftAnimation forKey:@"test"];
} @end //
// ViewController.m
// CurveProgressDemo
//
// Created by MJ on 15/6/12.
// Copyright (c) 2015年 SNWFMJ. All rights reserved.
// #import "ViewController.h"
#import "TJProgressView.h"
@interface ViewController ()
{
TJProgressView *progressView;
}
@end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; progressView = [[TJProgressView alloc]init];
[progressView showInView:self.view]; [NSTimer scheduledTimerWithTimeInterval: target:self selector:@selector(changeValue) userInfo:nil repeats:YES]; } - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning]; }
- (void)changeValue
{
progressView.progressValue =0.5;
}
@end

CABasicAnimation - 上下滑动动画的更多相关文章
- jQuery实用小技巧-获取选中的的下拉框和返回头部滑动动画
//获取选中的下拉框 $('#someElement').find('option:selected'); $('#someElement option:selected'); //返回头部滑动动画 ...
- Android滑动动画ViewFlipper和视频播放VideoView的使用
Android滑动动画,可以用ViewPager或者ViewFlipper实现. ViewPager自带触摸滑动功能,结合Fragment使用很好,来自补充组件android-support-v4.j ...
- 利用jquery实现百度新闻导航菜单滑动动画
前言 前两天,群里有人问百度新闻导航是如何实现的,当时由于忙于工作,没有来得及细看,恰好今天有空闲时间,索性就实现一下这个效果吧: 思路与步骤 1.利用UL创建简单横向导航: <!DOCTYPE ...
- viewpager处理(二):设置当前item时,让viewpager不出现滑动动画
我们在使用viewpager.setCurrentItem(position);的时候,viewpager出现滑动动画,如何去掉这个动画呢? 可以用viewpager.setCurrentItem(p ...
- android仿微信红包动画、Kotlin综合应用、Xposed模块、炫酷下拉视觉、UC浏览器滑动动画等源码
Android精选源码 仿微信打开红包旋转动画 使用Kotlin编写的Android应用,内容你想象不到 Android手机上的免Root Android系统日志Viewer 一个能让微信 Mater ...
- 【Web】利用jquery实现百度新闻导航菜单滑动动画
前言 前两天,群里有人问百度新闻导航是如何实现的,当时由于忙于工作,没有来得及细看,恰好今天有空闲时间,索性就实现一下这个效果吧: 思路与步骤 1.利用UL创建简单横向导航: <!DOCTYPE ...
- JQuery--基础动画、滑动动画、淡入淡出动画、自定义动画
/** * [JQ基础动画] * show() 显示 * hide() 隐藏 * toggle() 切换 * 默认无动画,如果要产生动画 * 在括号内,添加毫秒数,可产生动画和控制动画的快慢 * * ...
- Android的Activity屏幕切换滑动动画
Activity的切换效果使用的是Android的动画效果,Android的动画在官方有相关资料:http://developer.android.com/guide/topics/graphics/ ...
- jQuery
代码的层定位滑动动画效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- php第二十节课
JSON弹窗 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- luogu P1775 古代人的难题_NOI导刊2010提高(02)(斐波纳契+数学)
题意 已知x,y为整数,且满足以下两个条件: 1.x,y∈[1…k],且x,y,k∈Z 2.(x^2-xy-y^2)^2=1 给你一个整数k,求一组满足上述条件的x,y并且使得x^2+y^2的值最大. ...
- PAT 1100. Mars Numbers
People on Mars count their numbers with base 13: Zero on Earth is called "tret" on Mars. T ...
- Maven学习总结(10)——使用Maven编译项目gbk的不可映射问题
Maven学习总结(十)--使用Maven编译项目gbk的不可映射问题 一.问题描述 今天在MyEclipse中使用Maven编译项目源代码时,结果如下了如下的错误 百思不得其解啊,java源代码在M ...
- OpenStack命令行工具与API
Openstack命令行工具 我们推荐Openstack命令行工具和Openstack的Dashboard两者结合使用.一些用户由于使用过其他云技术背景的,可能会使用EC2兼容的API,相对于我们需要 ...
- 暑假集训D17总结
考试 玄学的一次考试= = T1乱搞 只会乱搞出前二十分 然后真的拿了二十分 T2模拟 自己造数据 没有一个是在十分钟内跳出来的 然后竟然A了 T3暴力 觉得如果老爷机心情不好就会被卡到20 然后 ...
- [bzoj4154][Ipsc2015]Generating Synergy_KD-Tree_dfs序
Generating Synergy bzoj-4154 Ipsc-2015 题目大意:给定一棵n个节点树,m个操作,支持:将一个点周围所有距该点距离不超过l的子结点的颜色改成另一种颜色:查询单点颜色 ...
- ps f
这个命令可以以树形结构列出进程信息.可以清楚的看清父进程子进程直接的关系.可笑我之前还以为所有的命令参数都是带有一个中划线的. 不过,这里列出的进程好像不全.应该仔细的看看ps 的命令. [root@ ...
- JS 缓冲运动 带运动的留言本 小案例
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- 关于MySQL错误 2005 - Unknown MySQL server host 'localhost' (0) 原因及解决方法
今天在外面开navicat for mysql的时候,怎么也连不上自己本机上的数据库,一直显示2005 - Unknown MySQL server host 'localhost' (0): 错误代 ...