Ios 如何设置UIView的动画/将其从右上角旋转90度?
我已经搜索了几个小时,试图找到一种从右上角将UIView动画/旋转90度的方法 这种效果几乎可以像屏幕顶部的旋转门一样工作Ios 如何设置UIView的动画/将其从右上角旋转90度?,ios,uiview,rotation,core-animation,transform,Ios,Uiview,Rotation,Core Animation,Transform,我已经搜索了几个小时,试图找到一种从右上角将UIView动画/旋转90度的方法 这种效果几乎可以像屏幕顶部的旋转门一样工作 希望有人能帮忙 您应该尝试将层的锚点设置为(0,1),然后设置层的动画。因此,在我按下enter键后,我突然将两个和两个放在一起,并认为Metronome示例的工作方式有点像摆动门,这让我想到了其他一些可能性 以下是我的解决方案: - (void)viewDidLoad { [super viewDidLoad]; // Set the anchor po
希望有人能帮忙 您应该尝试将层的锚点设置为(0,1),然后设置层的动画。因此,在我按下enter键后,我突然将两个和两个放在一起,并认为Metronome示例的工作方式有点像摆动门,这让我想到了其他一些可能性 以下是我的解决方案:
- (void)viewDidLoad {
[super viewDidLoad];
// Set the anchor point and center so the view swings from the upper right
swingView.layer.anchorPoint = CGPointMake(1.0, 0.0);
swingView.center = CGPointMake(CGRectGetWidth(self.view.bounds), 0.0);
// Rotate 90 degrees to hide it off screen
CGAffineTransform rotationTransform = CGAffineTransformIdentity;
rotationTransform = CGAffineTransformRotate(rotationTransform, DegreesToRadians(90));
swingView.transform = rotationTransform;
}
...
- (void)animateSwing {
CGAffineTransform swingTransform = CGAffineTransformIdentity;
swingTransform = CGAffineTransformRotate(swingTransform, DegreesToRadians(0));
[UIView beginAnimations:@"swing" context:swingView];
[UIView setAnimationDuration:0.25];
swingView.transform = swingTransform;
[UIView commitAnimations];
}
希望这对其他人也有帮助 您应该尝试以下代码:
-(void)doRotationView{
[UIView beginAnimations:@"flipping view" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft
forView:self cache:YES];
if (flagFront == 1) {
flagFront =0;
[self.viewSecond setHidden:NO];
[self.viewFirst setHidden:YES];
}
else{
flagFront =1;
[self.viewSecond setHidden:YES];
[self.viewFirst setHidden:NO];
}
[UIView commitAnimations];
}在我发布问题后不久,我发现layer.ancorpoint和view.center是罪魁祸首。谢谢你的快速回复!顺便说一句,这个答案是什么导致我从节拍器样本不同的动画。我觉得它干净一点#定义度弧度(角度)((角度)/180.0*M_π)