iOS开发-核心动画随笔
- 核心动画
可以让View旋转,缩放,平移(主要是操作View的layer(层)属性)但是核心动画改变的位置不是真实的位置,一切都是假象所以有时候要用到其他动画,如UIView本来封装的动画,还有定时器
// 实现图片360°旋转 CABasicAnimation* rotationAnimation; rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ]; rotationAnimation.duration = duration; rotationAnimation.cumulative = YES; rotationAnimation.repeatCount = repeat; [view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
- 定时器
CADisplayLink 每秒调用60次
// 创建定时器 CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(XXX)]; // 加入运行循环 [link addToRunLoop :[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; // 实现XXX方法 -(void)XXX { // 动画方法 }
***使用按钮点击(或其他事件)启用定时器时,要懒加载定时器,否则连续点击按钮的话定时器会累加。
定时器有一个停止的属性
link.pause = NO; // 定时器结束
link.pause = YES; // 定时器停止
- 加载Xib有两个方法
//1.这个要在没有与storyboard连线时用的 - (id)initWithCoder:(NSCoder *)aDecoder { } //2.这个在有与storyboard连线时用 - (void)awakeFromNib { } 否则取不到视图类里的属性
- 剪裁图片
// 一张含有多张图片的素材进行剪裁,然后使用核心动画,进行UI布局时用到 // 剪裁图片方法,第一个参数传要剪裁的Image.CGimage,第二个参数传尺寸这里要注意图片是否像素点 CGImageCreatWithIamgeInRect( , );