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/ ...
随机推荐
- ES6学习历程(变量的声明)
2019-01-25: 一:变量的声明: 1.对于变量的声明添加了let,const两种方式 关于let: (1)不存在变量提升--必须先声明再使用; (2)会出现暂时性死区--在一个方法外用var声 ...
- 【Codeforces 1106B】Lunar New Year and Food Ordering
[链接] 我是链接,点我呀:) [题意] 给你n个菜以及每个人需要的菜以及数量 如果某个人无法满足它对菜的需求的话 就用价格比较低的菜来填充它的要求. (如果价格低的菜不够了,那么就直接输出0) 否则 ...
- JavaWeb+MySql分页封装
前段时间因为需要所以写一个JavaWeb+MySql的分页封装类,附上代码.技术有限写得不好请多多指教. 1.首先贴上Eneity类 package com.zx.pageUtil; import j ...
- NEMA-0183(GPRMC GPGGA)详细解释
NEMA-0183(GPRMC GPGGA)详细解释 nmea数据如下: $GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5. ...
- 机器学习1k近邻
自己一直学习计算机视觉方面的东西,现在想学习一下数据挖掘跟搜索引擎,自己基础也有点薄弱,看朱明的那本数据挖掘,只能片面的了解这个数据挖掘.不过最近有一本书 机器学习实战,于是乎通过实战的形式了解一下基 ...
- ubuntu消除登录痕迹
清除登陆系统成功的记录 [root@localhost root]# echo > /var/log/wtmp //此文件默认打开时乱码,可查到ip等信息 [root@localhost roo ...
- 微信的token验证
微信的token验证 在微信公众平台的基本配置中,需要输入token,这个token不是那个access_token springmvc验证代码: @RequestMapping(value=&quo ...
- 苹果iPhone6为何拯救不了富士康?
最近有媒体报道,富士康正在招聘10万名新员工,这比美国5个州不论什么一个大城市的市民都还多.而招这些工人的目的就是生产下一代iPhone手机.分析师估计该手机的推出时间将在10月.对此,英国的< ...
- Android开发趣事记之周期性广告
前些天做了一个应用,由于怕影响用户体验,所以我将广告设定了一下,就是每启动软件8次.就会弹出一次广告. 在上传到应用宝后.竟然得到了这种结果: 看到了吧.无病毒,无广告. 看来审核人员是不会把应用连续 ...
- Java基础之hashCode方法具体解释
想要明确hashCode的作用,必须要先知道java中的集合.(不明确的请看Java基础之集合框架具体解释(二)List篇和Java基础之集合框架具体解释(三)Set篇) Java中的Collecti ...