- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event
{
/*------让黄色视图移动三角形------*/
/**
*动画只是一个效果,并不会影响到视图本身的位置
* 1.在动画结束后,手动的移动视图的位置(动画代理)
* 2.了解:利用fillMode配合removeOnCompletion使用
*动画效果在使用完成后,默认是会被移除的
*当界面消失(按下Home键,或者是scrollView的内容被拖走了,看不到),动画是会被移除的
*将removeOnCompletion设置为NO,当动画完成了,也不会将它移除
*/
//实例化一个关键帧动画,绑定了要操作的属性
//使用transform.translation ,写错是不会崩溃,但没有动画效果
//使用Layer的position属性,也可以实现位移效果
CAKeyframeAnimation*animation = [CAKeyframeAnimationanimationWithKeyPath:@"position"];
// NSObject已经遵守了协议,代理方法直接从父类继承过来,直接重写即可
// animation.delegate = self;
NSValue*value1 = [NSValuevalueWithCGPoint:CGPointMake(100,100)];
NSValue*value2 = [NSValuevalueWithCGPoint:CGPointMake(300,100)];
NSValue*value3 = [NSValuevalueWithCGPoint:CGPointMake(100,300)];
//关键帧数组,三角形的三个点(需要包装一下)
animation.values=@[value1, value2, value3, value1];
//配置其它的参数
animation.duration=2.0;
//无限重复
// animation.repeatCount = MAXFLOAT;
//动画完成后是否被移除,默认是被会移除
animation.removedOnCompletion=NO;
//计算模式(根据duration来计算每个value,产生动画的效果)
// kCAAnimationLinear是默认,线性的计算
// kCAAnimationDiscrete不连续的动画效果
animation.calculationMode=kCAAnimationCubic;
//了解:填充模式, kCAFillModeForwards要配置动画移除
animation.fillMode=kCAFillModeForwards;
[_yellowView.layeraddAnimation:animationforKey:nil];
}