猿问
下载APP

iPhone UIView动画最佳实践

iPhone UIView动画最佳实践

在iPhone上设置动画视图过渡的最佳做法是什么?


例如,ViewTransitions来自apple 的示例项目使用如下代码:


CATransition *applicationLoadViewIn = [CATransition animation];

[applicationLoadViewIn setDuration:1];

[applicationLoadViewIn setType:kCATransitionReveal];

[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];

[[myview layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];

但是网络上还有漂浮的代码片段,如下所示:


[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:0.75];

[UIView setAnimationDelegate:self];

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES];

[myview removeFromSuperview];

[UIView commitAnimations];

什么是最好的方法?如果你也可以提供一个片段,那就非常感激了。


注意:我无法让第二种方法正常工作。


凤凰求蛊
浏览 42回答 3
3回答

喵喵时光机

从UIView参考的有关beginAnimations:context:方法的部分:在iPhone OS 4.0及更高版本中不鼓励使用此方法。您应该使用基于块的动画方法。例如基于Tom的评论的基于块的动画[UIView transitionWithView:mysuperview                    duration:0.75                    options:UIViewAnimationTransitionFlipFromRight                 animations:^{                      [myview removeFromSuperview];                  }                  completion:nil];

Cats萌萌

让我们试试看看Swift 3 ......UIView.transition(with: mysuperview, duration: 0.75, options:UIViewAnimationOptions.transitionFlipFromRight , animations: {     myview.removeFromSuperview()}, completion: nil)

白板的微信

无论如何,“阻止”方法现在是优先考虑的。我将在下面解释简单的块。考虑下面的剪辑。bug2和bug 3是imageViews。下面的动画描述了延迟1秒后持续1秒的动画。bug3从它的中心移动到bug2的中心。动画完成后,将记录“Center Animation Done!”。-(void)centerAnimation:(id)sender{NSLog(@"Center animation triggered!");CGPoint bug2Center = bug2.center;[UIView animateWithDuration:1                       delay:1.0                     options: UIViewAnimationCurveEaseOut                  animations:^{                      bug3.center = bug2Center;                  }                   completion:^(BOOL finished){                      NSLog(@"Center Animation Done!");                  }];}希望干净!!!
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答