在iOS中摇摆动画

| 我想知道是否可以在iOS中做某种摇摆动画。例如,摇摆动画就像商店的招牌在风中飘扬。想西方人。我想在按下按钮时做这种动画。我想要一种西方的感觉,那真的会让它脱颖而出。在此先感谢您是否知道如何做这样的事情。     
已邀请:
        为此,您必须事先做几件事,例如将图层锚点设置为(0.5,0.0)。如下所示:
swaybtn.layer.anchorPoint = CGPointMake(0.5, 0.0);
然后创建一个函数,该函数在点击按钮时被调用,该函数开始向后摇摆动画,向后摇摆动画,最后一个向后移动到原始位置。您指定的度数是摇摆的方向,而rotationAndPerspectiveTransform中的第二个数字是摇摆的方向。 功能如下:
-(void)sway:(id)sender{

CGFloat degrees = 50.0;

CALayer *layer;
layer = swaybtn.layer;

CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.25];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(moveForward)];

rotationAndPerspectiveTransform.m34 = 1.0 / -400;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, degrees * M_PI / 180.0f, -1.0f, 0.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;

[UIView commitAnimations];

}

-(void)moveForward{

CALayer *layer;
layer = swaybtn.layer;

CGFloat degrees = 50.0;

CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;

[UIView beginAnimations:@\"swayforward\" context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(moveBack)];

rotationAndPerspectiveTransform.m34 = 1.0 / -400;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, degrees * M_PI / 180.0f, 1.0f, 0.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;

[UIView commitAnimations];

}

-(void)moveBack{

CALayer *layer;
layer = swaybtn.layer;

CGFloat degrees = 50.0;

CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;

[UIView beginAnimations:@\"moveback\" context:NULL];
[UIView setAnimationDuration:0.25];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

rotationAndPerspectiveTransform.m34 = 1.0 / -400;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, degrees * M_PI / 180.0f, 0.0f, 0.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;

[UIView commitAnimations];

}
然后你去。您应该具有一个动画,可以像悬挂标志一样来回摆动对象。     

要回复问题请先登录注册