-通过center修改位置
-center是CGPoint类型,是view正中间的点
-通过frame修改大小
- 通过frame修改大小时左上角原点不动
-通过bounds修改大小
- bounds 和 frame 都是CGRect的类型
- bounds 默认的原点是 0,0
- 通过bounds修改大小时中心点不动
- center只能修改位置,bounds只能修改大小,frame既能修改位置也能修改大小
-通过transform修改位置(平移)
- CGAffineTransformMakeTranslation(X偏移量, Y偏移量);
- CGAffineTransformTranslate(在某个transform的基础上-一般为自身, X偏移量, Y偏移量);
-通过transform修改大小(缩放)
- CGAffineTransformMakeScale(宽缩放的倍数, 高缩放的倍数);
- CGAffineTransformScale(在某个transform的基础上-一般为自身, 宽缩放的倍数, 高缩放的倍数);
-通过transform进行旋转(旋转)
- CGAffineTransformMakeRotation(旋转的弧度);
- CGAffineTransformRotate(在某个transform的基础上-一般为自身, 旋转的弧度);
-恢复transform形变
- 在发生形变的时候苹果推荐使用transform.
- 形变的时候frame发生变化,bounds不发生变化.
- CGAffineTransformIdentity的含义?
- 最原始的transform
-头尾式动画(了解)
- [UIView beginAnimations:nil context:nil];
- 准备开始动画
- [UIView setAnimationDuration:5];
- 设置时间
- [UIView commitAnimations];
- 提交动画(真正开始做动画)
-块动画
+(void)animateWithDuration:(NSTimeInterval)duration
animations:(void (^)(void))animations
completion:(void (^__nullable)(BOOL finished))completion;+(void)animateWithDuration:(NSTimeInterval)duration
animations:(void (^)(void))animations;+(void)animateWithDuration:(NSTimeInterval)duration
delay:(NSTimeInterval)delay
usingSpringWithDamping:(CGFloat)dampingRatio
initialSpringVelocity:(CGFloat)velocity
options:(UIViewAnimationOptions)options
animations:(void (^)(void))animations
completion:(void (^__nullable)(BOOL finished))completion;- duration : 动画时间
- delay : 延迟时间
- dampingRatio : 阻尼系数(弹性) 越小越弹
- velocity : 速率
- options : 选项
- animations : 做动画的代码块
- completion : 动画完成的代码块 “回调”
-序列帧动画实现
- 方法1
- -[UIImage animatedImageWithImages:动画数组 duration:持续时间]; // 可以获取一个能做动画的UIImage对象
- 方法2
- self.imageView.animationImages = array; // 装图片的数组(需要做动画的图片数组)
- self.imageView.animationDuration = 2; // 动画时间
- self.imageView.animationRepeatCount = 1; // 重复次数 0 表示重复
- [self.imageView startAnimating]; // 开始序列帧动画