setAnimationTransition:forView:cache: 运行动画时背景色问题

Posted mthoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setAnimationTransition:forView:cache: 运行动画时背景色问题相关的知识,希望对你有一定的参考价值。

首先我描写叙述一下问题:当我从一个view到另外一个view的时候?

解答:这个问题的解决还须要看setAnimationTransition:forView:cache: 官方Api,官方是这样说的:

1.Begin an animation block.
2.Set the transition on the container view.
3.Remove the subview from the container view.
4.Add the new subview to the container view.
5.Commit the animation block.

1.開始一个动画块。

2.在容器视图中设置转换。

3.在容器视图中移除子视图。 4.在容器视图中加入子视图。

5.结束动画块。

就是他全部的操作都是在父View上进行操作的,我的代码是这样写得:

 AppDelegate * delegate = [UIApplication sharedApplication].delegate;
    delegate.nav_Center.view.backgroundColor = [UIColor clearColor];
    //[delegate.window setBackgroundColor:[UIColor whiteColor]];
    [self.navigationController.view superview].backgroundColor = [UIColor whiteColor];
    for (UIViewController * c in delegate.nav_Center.viewControllers) {
        if([c isKindOfClass:[TrendViewController class]]) {
            if (curve>=0) {
                [UIView  beginAnimations: @"PopNav" context: nil];
                [UIView setAnimationCurve: curve];
                [UIView setAnimationDuration:0.75];
                [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
                NSLog(@"===%@=%@",[[self.navigationController.view superview] class],[self.navigationController.view class]);
	            [self.navigationController popViewControllerAnimated:NO];
                [UIView commitAnimations];
            }
            else {
	            [self.navigationController popViewControllerAnimated:YES];
            }
            return YES;
        }
    }

直接设置要切换到view的父view的背景色就ok了。当然了,有时候他的父view也可能是window。

详细情况详细分析吧。

希望能帮助一些人。



以上是关于setAnimationTransition:forView:cache: 运行动画时背景色问题的主要内容,如果未能解决你的问题,请参考以下文章