哈喽大家好 今天我就写一写我学动画是做的笔记吧##
首先建立viewController
声明变量
@proerty(weak,nonatomic)UIView *UIVIew
动画的属性
//开始动画
[UIView beginAnimation:@"动画属性" context:nil];
//setAnimationDuration设置动画的持续时间
[UIView setAnimationDuration:2];
//设置动画延迟时间
[UIView setAnimationDelay:1];
//设置重复次数
[UIView setAnimaitionRepeatCount:3];
//设置过度效果(动画效果控制)
[UIView setAnimationCurve:UIVIewAnimationCurveEaseInout];
这里有4种动画效果可用 只取一种用
//设置代理
[UIView setAnimationDelegate:self];
//给动画开始的时候添加事件 (一定要先设置代理)
[UIView setAnimationWillStartSelector:@selector(startAnimation)];
//设置动画界面的位置
_UIView.center = CGPointMake(300,70);
//给动画结束的时候添加事件
[UIView setAnimationDidStopSelector:@selector:(stopAnimation)];
//结束动画
[UIView commitAnimations];
}```
这是一个简单的动画
设置动画快的事件
```[UIView setAnimationDelay:1];
//一种方法
[UIView animationWithDuration:1 animations:^{
//动画进行时需要的操作
_UIView.backgroundColor = [UIColor yellowColor];
}];
//第二种方法
[UIView animationDuration:2 animations:^{
//动画进行时需要的操作
}
completion:^(BOOL finished){
//动画结束时需要的操作
}]
//第三种
[UIView animationDuration:2 delay:1 options:UIViewAnimationOptionAutoreverse animations:^{
//设置循环次数
[UIView setAnimationRepeatCount:4];
//动画进行时的事件
}completion;^(BOOL finish){
//动画结束时需要的操作
}];```
2D仿射变换
```[UIView beginAnimations:@"2D仿射变换" context:nil];
//动画持续时间
[UIView setAnimationDuration:2];
//动画重复次数
[UIView setAnimationRepeat:4];
// 旋转
//基于原始位置旋转
_UIView.transform = CGAffineTransformMakeRotation(M_PI_2/3);
//基于上一次旋转
_UIView.transform = CGAffineTransformRotate(_UIView.transform,M_PI_2/3);
// 缩放
//平面缩放
_UIView.transform = CGAffineTransformScale(3,0.5);
//旋转缩放
_UIView.transform = CGAffineTransformMake(-1,cos(M_PI_2),3,sin(M_PI_4),1,1);```
下边写下关于动画抖动的代码
```CABasicAnimation *basic = [CABasicAnimationWithKeyPath:@"bounds.size"];
CGSize fromSize = CGSizeMake(100,100);
CGSize toSize = CGSizeMake(20,200);
//设置初始值
basic.fromValue = [NSValue valueWithCGSize:fromSize];
basic.fromValue = [NSValue valueWithSize:toSize];
//动画只是一个效果 不会改变属性的值,若想要改变属性的值,需要我们手动改变
CGRect newRect = _UIView.layer.bounds;
newRect.size = toSize;
_UIView.layer.bounds = NewRect;
[_UIView.layer addAnimation:basic forKey:@"test"];
//取出UIView的layer层
CALayer *myLayer = _UIView.layer;
//获取layer位置
CGpoint position = mylayer.position;
//设置晃动时俩个终点的位置
CGPoint x1 = CGPointMake(position.x-10,position.y);
CGPoint x2 = CGPointMake(position.x+10,position.y);
//设置动画
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
//设置开始位置
[animation setFromValue:[NSValue valueWithCGPoint:x1]];
//设置结束位置
[animation setToValue:[NSValue valueWithCGPoint:x2]];
//设置自动翻转
[animation setAutoreverses:YES];
//设置持续时间
[animation setDuration:0.06];
//设置重复次数
[animation setRepeatCount:4];
//添加动画
[myLayer addAnimation:animation forkey:@"test"];```
这就是我学习的时候总结的一些笔记了
网友评论