2012-04-16 36 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