- transform 属性 平移, 旋转, 缩放在ios开发中是不可缺少的,在demo中用处是不可小觑的
一. transform 属性,做形变,平移:
CGAffineTransformMakeTranslation(10, 0) : 在初始位置的基础上进行平移
CGAffineTransformTranslate(self.redView.transform, 10, 0) 可以多次生效, 以当前状态为基础
旋转:
CGAffineTransformMakeRotation:angle : 是弧度
M_PI_4 : 45°
如果传值为负 : 逆时针进行旋转
CGAffineTransformMakeRotation(M_PI_4)
CGAffineTransformRotate(self.redView.transform, -M_PI_4)
缩放:
CGAffineTransformMakeScale(1.2, 1.2) : x轴上放大1.2倍, y 轴上放大1.2 倍
如果想要缩小, 就传递小于1的值, 如果传递为负值, 这个view 就疯了
CGAffineTransformMakeScale(1.2, 1.2)
CGAffineTransformScale(self.redView.transform, 0.8, 0.5)
- UIImageView的帧动画
- 创建一个可变数组 –> mutableArray, 用来存放, UIImage 对象, 要做动画的图片
- 执行一个for循环
- 拼接图片名称
- 实例化图片对象 –> UIImage
- 把UIImage对象添加到可变数组中
- 把可变数组赋值给UIImageView的animationImages
为imageView 设置 图片 –> 数组中最后一个UIImage对象
设置重复次数: animationRepeatCount : 如果不设置, 默认是无限循环
设置动画时间: 根据图片的个数来决定
- 开启动画
[animationImageView startAaimating];
加载图片的两种方式:
[UIImage imageNamed:imageString] : 就会产生缓存
优点: 下次访问的速度回比较快
缺点: 占用内存空间
// 通过 imageWithContentsOfFile: 加载图片 加载的图片比较大, 占用内存
优点: 不会产生缓存
缺点: 速度慢
NSString *imageString = [NSString stringWithFormat:@"%@%01d.png",name, i];
// 读取文件路径 , 要加上 文件的后缀
NSString *path = [[NSBundle mainBundle] pathForResource:imageString ofType:nil];
UIImage *image = [UIImage imageWithContentsOfFile:path];
延迟 duration 时间之后, self 调用 clearArrayPoint 参数 为nil
[self performSelector:@selector(clearArrayPoint) withObject:nil afterDelay:duration];
/**
_animationImageView : 在 duration 之后, 执行 setAnimationImages: 这个方法, 参数为nil
*/
[_animationImageView performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:duration];
如果放到bundle 中: imageNamed: 和 imageWithContentsOfFile:
都是可用的使用图片的时候, 不管是jpg 还是 png 都要加上后缀名
如果通过代码的方式 设置图片 png 不用设置后缀名 ,jpg 需要设置
放置比较大的图片, 欢迎页面