2012-04-16 34 views
0

我有我的标准视图自定义背景和我的分组的UITableView我在自定义背景动画不上查看更改

宣布

// RooViewController

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:YES animated:NO]; //Hides the navigation bar 

    //Add custom background 
    self.view.backgroundColor = [UIColor clearColor]; 
    self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.png"]]; 

    [super viewWillAppear:animated]; 
} 

// GroupedTableviewController

- (void)viewWillAppear:(BOOL)animated 
{  
    //Add custom background 
    self.tableView.backgroundColor = [UIColor clearColor]; 
    self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgplain.png"]]; 

    [super viewWillAppear:animated]; 
} 

这个东西是意见只是消失和重现,但有一个动画之间发生左右滑动的视图...我怎么能添加这些自定义b ackgrounds到这个视图改变动画?

回答

2

您需要设置出现的视图的背景视图,而不是父视图控制器的视图。通过设置父视图控制器的视图,您基本上会切换该视图(该视图不会是动画的),而显示的视图控制器(显然是清晰的)的视图是动画的。相反,添加背景视图在出现的视图控制器视图,或在您的情况下,只需设置颜色:

self.view.backgroundColor = UIColor colorWithPatternImage:[UIImage imageNamed:@"bgplain.png"]];

我也注意到,你已经改变parentView的背景视图在你的根视图控制器,这意味着父视图可能是一个UINavigationView(也是根据你的评论)。一般来说,你不应该改变navigationController的视图特性,主要是因为它设计用来保存其他视图/控制器,不显示它自己的视图(当然除了导航栏)。

所以我不认为你应该在每个视图控制器中与self.parentViewController.view搞混,并且坚持使用self.view

+0

感谢您的回复..这几乎套房我的需求..但是我想我应该提到,tableview也是在一个导航控制器..这个解决方案是搞乱导航控制器栏。当视图随着动画的变化而变成白色时 – 2012-04-16 21:21:57

+0

我已经给我的答案添加了一些说明。看看是否有帮助。 – 2012-04-16 21:36:48

+0

好吧很酷,我明白你的意思..有点,我的意思是这是一个有点混乱的话题。我开始使用self.view两个视图..但是听起来像我可能不应该改变的东西..也关于导航控制器我已经宣布,在Appdelegate“MainWindow.xib” – 2012-04-16 21:40:42