Duration:动画时长
delay:延时执行时间
Damping:阻尼系数
Velocity:启动速度
options:线性
//动画重置
weakSelf.Mybtn.transform = CGAffineTransformIdentity;
//手势:1.点击(UITapGestureRecognizer),2.缩放(UIPinchGestureRecognizer),3.拖动(UIPanGestureRecognizer)
//添加点击事件——响应用户事件交互
_handView.userInteractionEnabled=YES;
//创建点击手势
UITapGestureRecognizer *myTapGes = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapgesAnimation:)];
//添加手势到视图
[_handView addGestureRecognizer:myTapGes];
//创建缩放手势
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(tapgesAnimation:)];
//给视图添加手势
[_handView addGestureRecognizer:pinch];
//手势响应方法
- (void) tapgesAnimation:(UITapGestureRecognizer *) tapGes
{
__weak typeof(self) weakSelf=self;//定义一个弱引用self,block
//判断手势类型
if([tapGes isKindOfClass:[UITapGestureRecognizer class]])
{
//点击一下改变图片位置
CGFloat Y = self.handView.center.y;
//移动坐标
CGFloat value=200.0;
//动画改变
[UIView animateWithDuration:3.0 animations:^{
self.handView.center = CGPointMake(weakSelf.handView.center.x, Y+value);
} completion:nil];
}
else if([tapGes isKindOfClass:[UIPinchGestureRecognizer class]])
{
//强转手势为捏合手势,拿到捏合比例
UIPinchGestureRecognizer *pinch = (UIPinchGestureRecognizer *)tapGes;
if(pinch.state==UIGestureRecognizerStateChanged)
{
//按照手势来缩放图片
weakSelf.handView.transform = CGAffineTransformScale(weakSelf.handView.transform, pinch.scale, pinch.scale);
//返回重设尺寸
pinch.scale = 1;
}
else if(pinch.state == UIGestureRecognizerStateEnded)
{
//手势结束
weakSelf.handView.transform = CGAffineTransformIdentity;
}
}
}
//动画类型,翻转,旋转(CGAffineTransformRotate),缩放(CGAffineTransformScale),平移
//翻转transitionWithView
[UIView transitionWithView:weakSelf.Mybtn duration:1 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
weakSelf.Mybtn.backgroundColor = [UIColor blackColor];//在执行翻转的时候做的事情
} completion:^(BOOL finished) {
//翻转动画完成之后执行新的一个动画
[UIView animateWithDuration:1.0 animations:^{
//动画重置
weakSelf.Mybtn.transform = CGAffineTransformIdentity;
//重新设置坐标,但是由于再动画方法里面所有他会执行平移动画
weakSelf.Mybtn.frame = CGRectMake(10, 70, 150, 150);
} completion:^(BOOL finished) {
}];