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

来源:互联网 发布:2016年网络犯罪案例 编辑:程序博客网 时间:2024/04/28 03:41

首先我描述一下问题:当我从一个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。

具体情况具体分析吧。

希望能帮助一些人。


1 0