【发布时间】:2011-05-03 14:45:54
【问题描述】:
我一直在寻找几个小时试图找到一种方法来动画/旋转 UIView 从右上角 90 度。
效果应该就像从屏幕顶部打开的门一样。
希望有人可以提供帮助!
【问题讨论】:
标签: ios uiview rotation core-animation transform
我一直在寻找几个小时试图找到一种方法来动画/旋转 UIView 从右上角 90 度。
效果应该就像从屏幕顶部打开的门一样。
希望有人可以提供帮助!
【问题讨论】:
标签: ios uiview rotation core-animation transform
所以在我按下 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];
}
希望这对其他人也有帮助!
【讨论】:
您应该尝试将图层的锚点设置为 (0,1),然后为图层设置动画。
【讨论】:
你应该试试这个代码:
-(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];
}
【讨论】: