iOS 玩具作文怎么写飞车动画怎么写

详解iOS开发中的转场动画和组动画以及UIView封装动画
只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的详解iOS开发中的转场动画和组动画以及UIView封装动画,手机电脑控们准备好了吗?一起看过来吧!
一、转场动画CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果属性解析:type:动画过渡类型subtype:动画过渡方向startProgress:动画起点(在整体动画的百分比)endProgress:动画终点(在整体动画的百分比)转场动画代码示例1.界面搭建2.实现代码代码如下:////& YYViewController.m//& 13-转场动画////& Created by apple on 14-6-21.//& Copyright (c) 2014年 itcase. All rights reserved.//#import "YYViewController.h"@interface YYViewController ()@property(nonatomic,assign)@property (weak, nonatomic) IBOutlet UIImageView *iconV- (IBAction)preOnClick:(UIButton *)- (IBAction)nextOnClick:(UIButton *)@end代码如下:@implementation YYViewController- (void)viewDidLoad{&&& [super viewDidLoad];&&& self.index=1;}- (IBAction)preOnClick:(UIButton *)sender {&&& self.index--;&&& if (self.index1) {&&&&&&& self.index=7;&&& }&&& self.iconView.image=[UIImage imageNamed: [NSString stringWithFormat:@"%d.jpg",self.index]];&&& &&& //创建核心动画&&& CATransition *ca=[CATransition animation];&&& //告诉要;执行什么动画&&& //设置过度效果&&& ca.type=@"cube";&&& //设置动画的过度方向(向左)&&& ca.subtype=kCATransitionFromLeft&&& //设置动画的时间&&& ca.duration=2.0;&&& //添加动画&&& [self.iconView.layer addAnimation:ca forKey:nil];}//下一张- (IBAction)nextOnClick:(UIButton *)sender {&&& self.index++;&&& if (self.index7) {&&&&&&& self.index=1;&&& }&&&&&&& self.iconView.image=[UIImage imageNamed: [NSString stringWithFormat:@"%d.jpg",self.index]];&&& &&& //1.创建核心动画&&& CATransition *ca=[CATransition animation];&&& &&& //1.1告诉要执行什么动画&&& //1.2设置过度效果&&& ca.type=@"cube";&&& //1.3设置动画的过度方向(向右)&&& ca.subtype=kCATransitionFromR&&& //1.4设置动画的时间&&& ca.duration=2.0;&&& //1.5设置动画的起点&&& ca.startProgress=0.5;&&& //1.6设置动画的终点//&&& ca.endProgress=0.5;&&& &&& //2.添加动画&&& [self.iconView.layer addAnimation:ca forKey:nil];}@end点击上一张,或者下一张的时候,展示对应的动画效果。二、组动画CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup对象加入层后,组中所有动画对象可以同时并发运行属性解析:animations:用来保存一组动画对象的NSArray默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间分组动画代码示例代码:代码如下:#import "YYViewController.h"@interface YYViewController ()@property (weak, nonatomic) IBOutlet UIView *iconV@end@implementation NJViewController- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{&&& &&& // 平移动画&&& CABasicAnimation *a1 = [CABasicAnimation animation];&&& a1.keyPath = @"transform.translation.y";&&& a1.toValue = @(100);&&& // 缩放动画&&& CABasicAnimation *a2 = [CABasicAnimation animation];&&& a2.keyPath = @"transform.scale";&&& a2.toValue = @(0.0);&&& // 旋转动画&&& CABasicAnimation *a3 = [CABasicAnimation animation];&&& a3.keyPath = @"transform.rotation";&&& a3.toValue = @(M_PI_2);&&& &&& // 组动画&&& CAAnimationGroup *groupAnima = [CAAnimationGroup animation];&&& &&& groupAnima.animations = @[a1, a2, a3];&&& &&& //设置组动画的时间&&& groupAnima.duration = 2;&&& groupAnima.fillMode = kCAFillModeF&&& groupAnima.removedOnCompletion = NO;&&& &&& [self.iconView.layer addAnimation:groupAnima forKey:nil];}@end说明:平移-旋转-缩放作为一组动画一起执行。执行效果:三、UIView封装动画1.UIView动画(首尾)(1).简单说明UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIView beginAnimations:nil context:nil]和[UIView commitAnimations]之间常见方法解析:+ (void)setAnimationDelegate:(id)delegate&&&& 设置动画代理对象,当动画开始或者结束时会发消息给代理对象+ (void)setAnimationWillStartSelector:(SEL)selector&& 当动画即将开始时,执行delegate对象的selector,并且把beginAnimations:context:中传入的参数传进selector+ (void)setAnimationDidStopSelector:(SEL)selector& 当动画结束时,执行delegate对象的selector,并且把beginAnimations:context:中传入的参数传进selector+ (void)setAnimationDuration:(NSTimeInterval)duration&& 动画的持续时间,秒为单位+ (void)setAnimationDelay:(NSTimeInterval)delay& 动画延迟delay秒后再开始+ (void)setAnimationStartDate:(NSDate *)startDate&& 动画的开始时间,默认为now+ (void)setAnimationCurve:(UIViewAnimationCurve)curve& 动画的节奏控制+ (void)setAnimationRepeatCount:(float)repeatCount& 动画的重复次数+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses& 如果设置为YES,代表动画每次重复执行的效果会跟上一次相反+ (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache& 设置视图view的过渡效果, transition指定过渡类型, cache设置YES代表使用视图缓存,性能较好(2).代码示例代码如下:////& YYViewController.m//& 01-uiview封装动画////& Created by apple on 14-6-22.//& Copyright (c) 2014年 itcase. All rights reserved.//#import "YYViewController.h"@interface YYViewController ()@property (weak, nonatomic) IBOutlet UIView *customV@end代码如下:@implementation YYViewController- (void)viewDidLoad{&&& [super viewDidLoad];&&& }-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{&&& //打印动画块的位置&&& NSLog(@"动画执行之前的位置:%@",NSStringFromCGPoint(self.customView.center));&&& &&& //首尾式动画&&& [UIView beginAnimations:nil context:nil];&&& //执行动画&&& //设置动画执行时间&&& [UIView setAnimationDuration:2.0];&&& //设置代理&&& [UIView setAnimationDelegate:self];&&& //设置动画执行完毕调用的事件&&& [UIView setAnimationDidStopSelector:@selector(didStopAnimation)];&&& self.customView.center=CGPointMake(200, 300);&&& [UIView commitAnimations];}-(void)didStopAnimation{&&& NSLog(@"动画执行完毕");&&& //打印动画块的位置&&& NSLog(@"动画执行之后的位置:%@",NSStringFromCGPoint(self.customView.center));}@end执行结果:打印动画块的位置:(3).UIView封装的动画与CALayer动画的对比使用UIView和CALayer都能实现动画效果,但是在真实的开发中,一般还是主要使用UIView封装的动画,而很少使用CALayer的动画。CALayer核心动画与UIView动画的区别:UIView封装的动画执行完毕之后不会反弹。即如果是通过CALayer核心动画改变layer的位置状态,表面上看虽然已经改变了,但是实际上它的位置是没有改变的。代码示例:代码如下:////& YYViewController.m//& 01-uiview封装动画////& Created by apple on 14-6-22.//& Copyright (c) 2014年 itcase. All rights reserved.//#import "YYViewController.h"@interface YYViewController ()@property (weak, nonatomic) IBOutlet UIView *customV@end代码如下:@implementation YYViewController-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{&& //1.创建核心动画&&& CABasicAnimation *anima=[CABasicAnimation animation];&&& //平移&&& anima.keyPath=@"position";&&& //设置执行的动画&&& anima.toValue=[NSValue valueWithCGPoint:CGPointMake(200, 300)];&&& &&& //设置执行动画的时间&&& anima.duration=2.0;&&& //设置动画执行完毕之后不删除动画&&& anima.removedOnCompletion=NO;&&& //设置保存动画的最新状态&&& anima.fillMode=kCAFillModeF//&&& anima.fillMode=kCAFillModeB&&& &&& //设置动画的代理&&& anima.delegate=&&& &&& //2.添加核心动画&&& [self.customView.layer addAnimation:anima forKey:nil];}-(void)animationDidStart:(CAAnimation *)anim{&&& //打印动画块的位置//&&& NSLog(@"动画开始执行前的位置:%@",NSStringFromCGPoint(self.customView.center));&&& NSLog(@"动画开始执行前的位置:%@",NSStringFromCGPoint( self.customView.layer.position));}-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{&&& //打印动画块的位置&&& NSLog(@"动画执行完毕后的位置:%@",NSStringFromCGPoint( self.customView.layer.position));}@end打印结果:2、block动画(1).简单说明代码如下:+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion参数解析:duration:动画的持续时间delay:动画延迟delay秒后开始options:动画的节奏控制animations:将改变视图属性的代码放在这个block中completion:动画结束后,会自动调用这个block转场动画代码如下:+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion参数解析:duration:动画的持续时间view:需要进行转场动画的视图options:转场动画的类型animations:将改变视图属性的代码放在这个block中completion:动画结束后,会自动调用这个block&代码如下:+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion方法调用完毕后,相当于执行了下面两句代码:代码如下:// 添加toView到父视图[fromView.superview addSubview:toView];// 把fromView从父视图中移除[fromView.superview removeFromSuperview];参数解析:duration:动画的持续时间options:转场动画的类型animations:将改变视图属性的代码放在这个block中completion:动画结束后,会自动调用这个block(2).代码示例代码如下:#import "YYViewController.h"@interface YYViewController ()@property (weak, nonatomic) IBOutlet UIView *customV@end代码如下:@implementation YYViewController-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{&&& //block代码块动画&&&&&&& [UIView transitionWithView:self.customView duration:3.0 options:0 animations:^{&&&&&&&&&&& //执行的动画&&&&&&&&&&& NSLog(@"动画开始执行前的位置:%@",NSStringFromCGPoint(self.customView.center));&&&&&&&&&&& self.customView.center=CGPointMake(200, 300);&&&&&&& } completion:^(BOOL finished) {&&&&&&&&&&& //动画执行完毕后的首位操作&&&&&&&&&&& NSLog(@"动画执行完毕");&&&&&&&&&&& NSLog(@"动画执行完毕后的位置:%@",NSStringFromCGPoint( self.customView.center));&&&&&&& }];}@end打印结果:提示:self.customView.layer.position和self.customView.center等价,因为position的默认值为(0.5,0.5)。3、补充(1).UIImageView的帧动画UIImageView可以让一系列的图片在特定的时间内按顺序显示相关属性解析:animationImages:要显示的图片(一个装着UIImage的NSArray)animationDuration:完整地显示一次animationImages中的所有图片所需的时间animationRepeatCount:动画的执行次数(默认为0,代表无限循环)相关方法解析:- (void)startA 开始动画- (void)stopA& 停止动画- (BOOL)isA& 是否正在运行动画(2).UIActivityIndicatorView是一个旋转进度轮,可以用来告知用户有一个操作正在进行中,一般用initWithActivityIndicatorStyle初始化方法解析:- (void)startA 开始动画- (void)stopA& 停止动画- (BOOL)isA& 是否正在运行动画UIActivityIndicatorViewStyle有3个值可供选择:代码如下:UIActivityIndicatorViewStyleWhiteLarge&& //大型白色指示器&&&UIActivityIndicatorViewStyleWhite&&&&& //标准尺寸白色指示器&&&UIActivityIndicatorViewStyleGray&&& //灰色指示器,用于白色背景
来源:/n/5356.html
热门搜索:
PS打造古堡复古风格 教程图解
电脑如何一键还原图解教程
怎么设置电脑自动关机
怎么在WPS文档里添加横向说明框
鸡肉肉质鲜美,是很多人经常烹饪的食材。鸡肉的做法也有很多种,比如现在比较风靡的鸡排,在各大小吃街都能看到,很多人怕外面的不干净,其实我们可以在家里自己制作。下面我们就来看看开心鸡排怎么做好吃。
每次我们做饭的时候,都会产生很多的厨房垃圾,大部分是蔬菜水果的皮,由于饮食文化的不同,很多人都会把水果削皮然后食用,其实,蔬菜水果削皮反而把它最营养的部分给带走了,进入了饮食误区,下面我们来说说厨房哪些蔬果皮可以吃吧。
很多人在新房装修后总想为家中增添一点装饰,此时选购一个合适的鱼缸养一些小鱼则是个很不错的选择。鱼缸成为了家居装饰品,养鱼又为我们的生活增添了趣味。那么,如何选购鱼缸呢?在选购鱼缸时有什么要注意的呢?下面就一起来看看吧。
花椒温中止痛;除湿止泻;杀虫止痒。主脾胃虚寒之脘腹冷痛;蛔虫腹痛;呕吐泄泻;肺寒咳喘;肺寒咳喘;龋齿牙痛;阴痒带下;湿疹皮肤瘙痒,那么花椒的具体作用有哪些呢?下面一起来看看!
现在很多仙剑爱好者疯狂的喜欢上了新出的仙剑奇侠传五,但是很多人都不知道怎么过,甚至一个环节卡的不行了,下面就给各位带来福音,仙剑奇侠传五全剧情解析流程攻略。
阴阳师是一款热门的网络游戏,一上市就获取了大批的粉丝。在游戏中发现别的玩家都已经二十多级了,反观自己才四、五级,心里真不是滋味,那么要怎么升级呢?本文汇集了阴阳师目前获取经验的所有方法,开始疯狂刷级之路吧。
手机是我们日常生活中常用的通讯软件,我们每天都会玩上几个小时的手机,甚至更长,每天入睡前和早上醒来都会玩上一会儿手机,我想这也是大多数人的习惯。可是部分人的手机电池越来越不耐用,其实这是没有掌握手机充电的正确方法。下面就给大家来介绍手机充电的正确方法有哪些吧。
肚子上的赘肉看上去让人烦恼,尤其是对于想穿裙子的女生来说更是一件郁闷的事情。现在减肥的方法有很多,但是很多人并不知道专门瘦肚子的方法。那么,如何瘦肚子呢?下面就给大家介绍几种减肚子的方法吧。
炎夏烈日炎炎,就在你与阳光亲密接触时,也让紫外线有了可乘之机,有的时候,虽然你认真做了防晒的工作,却依旧没能躲过炙热的阳光,晒伤之后,要立马着手修复晒伤的肌肤,那么晒伤后怎么处理呢?下面就一起来看看吧。
脸上肉嘟嘟的女生和男生们是不是选择发型的时候很伤大脑。没关系,我们这里肯定有一款适合你的发型,本文也是大圆脸一枚,下面分享下我收集多年的圆脸女生男生发型以及学会的圆脸发型修饰技巧。
如果您有什么好的建议或者疑问,可以联系我们! QQ群: QQ号: 进群、加好友,备注:图老师 小周老师一一为您解答!让我们一起学习、一起进步 版权所有 (C) 2016 All Rights Reserved. 湘ICP备号
微信公众号&&&&&&当前位置:&gt
月销量137件
月销量82件
月销量35件
月销量30件
月销量24件
618超级返狂欢节
一淘网为您找到玩具挥挥飞车产品的详细资讯,实时报价,价格行情,玩具挥挥飞车商品分类,论坛问答/求购等相关产品信息。
增值电信业务经营许可证:浙B2-玩具之家_怀旧动画吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,544贴子:
如果大家真的怀念玩具之家。可以联名请央视发售dvd.
随后会放制作过程
我称自己为斜杠青年-龙...
百度美女吧,原生态美女...
本期内容很精彩,保证你...
男生们快来吧 关于女生...
帖序 —————————分割线——...
良心推荐的吧,看后你会...
1-10,胡歌,AB,邓超,...
巨星地位高低的争论一...
先看君名女主三叶,神社...
我个人也算是业内人员。...
不废话,看图! 二楼正...
报考一级消防师要求,学尔森13年考培经验为您解答,更有百度信贷分期付学费.
还有怪鸭历险记的国语版,实在是想疯了。大家可否联名请江苏电视台把存底拿出来。呵呵
想念玩具之家,故事情节还是蛮有趣的。。。
老箱子 白色电脑 还有台黄色的,映像最深一集有两台白色电脑,一台是相片打气的,最后又变回一张相片了
层主我今年27记忆中看过一部动画片一直有这么一句台词“飞车大侠老箱子“
不要找了,这部动画片的胶片被大火烧掉了,央视也没备份,没有了,随着我们的童年一起流逝了,再也回不来了
我只记得小电脑能放光盘来着,当时看的时候太小了,快记不清了
贴吧热议榜
使用签名档&&
保存至快速回贴

我要回帖

更多关于 玩钓鱼玩具怎么写 的文章

 

随机推荐