如何将核心动画块中的一段代码排除在动画之外? [英] How can I exclude a piece of code inside a core animation block from being animated?

查看:104
本文介绍了如何将核心动画块中的一段代码排除在动画之外?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个核心动画块,我调用一个方法,将加载视图控制器。有两个视图控制器之间的自定义转换发生。然而,当视图控制器建立接口时,所有这些东西都会受到核心动画的影响。虽然它产生一些有趣的效果,我不想那样;)

I have an core animation block where I call a method that will load a view controller. there is an custom transition between two view controllers happening. However, when the view controller builds up the interface, all this stuff is affected by core animation. Although it results in some interesting effects, I don't want that ;)

[UIView beginAnimations:@"jump to view controller" context:self];
[UIView setAnimationDuration:0.55];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

// some animated property-changes here...

[self loadViewControllerForIndex:targetIndex]; // everything that happens in this method shall not be animated

UIViewController *controller = [viewControllers objectAtIndex:targetIndex];
[controller viewWillAppear:YES];
[controller viewDidAppear:YES];

[UIView commitAnimations];

很遗憾,我无法将该部分移出块。

Unfortunately I can't move that part out of the block.

你可以通过将该部分包装在CATransaction并禁用动画来抑制UIView动画块的一部分的动画:

You should be able to suppress animations for a section of the UIView animation block by wrapping that section in a CATransaction and disabling animations for it:

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];    

// Changes to disable animation for here
[CATransaction commit];

这篇关于如何将核心动画块中的一段代码排除在动画之外?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆