-(void)signUpAndLoginAnimation:(BOOL)showSignUp { CGFloat LogInWidthChange = (showSignUp)?-120:120; [UIView animateWithDuration:0.3f animations:^{ CGRect newFrame = self.logInView2.frame; newFrame.origin.x -= LogInWidthChange; newFrame.size.width += LogInWidthChange; CGFloat newSizeX = self.logInView2.frame.size.width + LogInWidthChange; CGFloat ofsetX = LogInWidthChange; [self.logInView2 setFrame:CGRectMake(self.logInView2.frame.origin.x-ofsetX, self.logInView2.frame.origin.y, newSizeX, self.logInView2.frame.size.height)]; }]; }
发现写复杂了:
[UIView animateWithDuration:0.3f animations:^{ CGFloat changeWidth = (showSignUp)?-120:120; [self.logInView2 setFrame:CGRectMake(self.logInView2.left-changeWidth, self.logInView2.top, self.logInView2.width + changeWidth, self.logInView2.height)]; }];
原文地址:http://blog.csdn.net/rainlesvio/article/details/38819987