IOS动画UI层的研究
来源:互联网 发布:淘宝网皮夹克 编辑:程序博客网 时间:2024/05/20 05:28
IOS动画大概分成5部分的知识:
1:事务性动画
写起来就像是开启一个事物一样,有事物的开始,有结束
@implementation FirstViewController
- (IBAction)commAnimation:(id)sender {
[UIViewbeginAnimations:@"Common"context:nil];//动画事物的开始标志
[UIViewsetAnimationDelay:1];
[UIViewsetAnimationDuration:1.0];
[UIViewsetAnimationDelegate:self];
[UIViewsetAnimationRepeatCount:2];
[UIViewsetAnimationWillStartSelector:@selector(startAni:)];
[UIViewsetAnimationDidStopSelector:@selector(stopAni:)];
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseOut];
// self.mImagView.frame=self.mTextView.frame;更改中心就是移动
// self.mImagView.bounds=self.view.bounds; 更改bounds
// self.mImagView.backgroundColor=[UIColor redColor];更改背景颜色
[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlDownforView:self.mImagViewcache:YES];//旋转或者翻页效果动画
[UIViewcommitAnimations];//动画的结束标志
2.Block动画,目前使用最广的一种方式
duration:动画执行时间 delay:延迟时间 usingSpringWithDamping时候来加的属性表示弹性属性0-1
initialSpringVelocity:初始化速度 options:动画效果选择项 比如先快后慢 重复方式 翻页方式等
animations:真正的动画部分 移动 旋转 改变基本位置属性等 completion:动画完成回调block
[UIViewanimateWithDuration:2.0fdelay:0.5fusingSpringWithDamping:0.5initialSpringVelocity:0.25 options:UIViewAnimationOptionCurveEaseOutanimations:^{
CGFloat orX=self.mTextView.center.x;
CGFloat orY=self.mTextView.center.y;
[self.mTextViewsetCenter:CGPointMake(orX+100, orY+100)];
self.mLable.alpha=0.25;
self.mImagView.transform=CGAffineTransformScale(self.mImagView.transform,0.5,0.5);
} completion:^(BOOL finished) {
NSLog(@"第一个动画完毕");
} ];
3.转场动画 transitionWithView:主要用于UIView的进入或者离开视图时
[UIViewtransitionWithView:_mImagViewduration:2options:UIViewAnimationOptionTransitionFlipFromLeftanimations:^{
self.mImagView.hidden=YES;
} completion:^(BOOL finished) {
}];
一般转场动画都会用下面这个有明确的出去和进来的两个View很明确,如下_mTextView就是要离开视图的,_mImagView就是要进入视图的。
[UIViewtransitionFromView:_mTextViewtoView:_mImagViewduration:2options:UIViewAnimationOptionCurveEaseOut|UIViewAnimationTransitionCurlDowncompletion:nil];
4.帧动画Frame 也叫嵌套的连续动画
CGFloat orX=self.mLable.center.x;
CGFloat orY=self.mLable.center.y;
CGPoint orCenter=self.mLable.center;
[UIViewanimateKeyframesWithDuration:2delay:0.5options:UIViewKeyframeAnimationOptionRepeatanimations:^{
[UIViewaddKeyframeWithRelativeStartTime:0.0relativeDuration:0.25animations:^{
[self.mLablesetCenter:CGPointMake(orX+80, orY-20)];
}];
[UIViewaddKeyframeWithRelativeStartTime:0.15relativeDuration:0.4animations:^{
self.mLable.transform=CGAffineTransformMakeRotation(-M_PI_4/2);
}];
[UIViewaddKeyframeWithRelativeStartTime:0.25relativeDuration:0.35animations:^{
[self.mLablesetCenter:CGPointMake(orX+100, orY-50)];
self.mLable.alpha=0;
}];
[UIViewaddKeyframeWithRelativeStartTime:0.55relativeDuration:0.05animations:^{
self.mLable.transform=CGAffineTransformIdentity;
[self.mLablesetCenter:CGPointMake(0, orY)];
}];
[UIViewaddKeyframeWithRelativeStartTime:0.65relativeDuration:0.5animations:^{
self.mLable.alpha=1.0;
self.mLable.center=orCenter;
}];
} completion:^(BOOL finished) {
}];
[UIView animateKeyFramesWithDuration:所有帧的动画时间和 delay:动画延迟开始 options:动画的效果选项 animations:在这里属性每一帧的动画(addKeyFrameWithRelativeStartTime)completion:所有add的帧的动画完成后的回调block];
[UIView addKeyFrameWithRelativeStartTime:相对开始的时间,即相对于整个动画开始的时间起点 relativeDuration:本帧动画的持续时间 animations:本帧动画的具体内容];
5.IOS核心动画也就是上面的4动画的底层代码 CALayer的操作
- IOS动画UI层的研究
- iOS开发UI篇—CAlayer层的属性(layer的隐式动画)
- iOS开发UI篇—CAlayer层的属性(position、anchorPoint) 和隐式动画
- iOS开发UI篇-CALayer层的属性、隐式动画
- iOS 动画研究一:丰富多彩的动画
- ios实现CALayer层的动画点击
- iOS layer层的转场动画
- IOS UI 动画用到的一些 效果
- iOS 动画 图层
- iOS UI 21 动画
- iOS开发 UI--动画
- 构思一个在windows下仿objc基于动画层ui编程的ui引擎
- android浏览器研究-APP层UI布局
- 【iOS开发-90】CALayer图层:自定义图层,图层的一些动画
- iOS开发UI篇—CAlayer层的属性
- iOS开发UI篇—CAlayer层的属性
- iOS开发UI篇—CAlayer层的属性
- iOS开发UI篇—CAlayer层的属性
- 将Sublime Text3添加到右键菜单中的方法
- Android 性能优化
- 函数表达式-闭包,作用域链
- 原生js--应用程序存储和离线web应用
- Xcode 真机调试 iOS 应用的各种问题和解决方法
- IOS动画UI层的研究
- Java Web 之过滤器Filter详解
- JAVA开发常用英语单词总结三
- mac隐藏/显示文件
- java父类指针指向子类的一点理解
- 使用okhttp上传文件---单文件或多文件
- POJ 2602 Superlong sums
- 可以在Apple官网下载各个版本的Xcode的路径
- c++异常处理