自定义背景不动画视图更改

时间:2012-04-16 20:44:33

标签: iphone ios xcode

我的标准视图的自定义背景和我在

中声明的分组的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];
}

这个问题就是视图刚刚消失并重新出现但是从左到右滑动的视图之间发生了动画...如何将这些自定义背景添加到此视图更改动画中?

1 个答案:

答案 0 :(得分:2)

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

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

我还注意到你在根视图控制器中更改了parentView的背景视图,这意味着父视图可能是UINavigationView(也是根据你的评论)。通常,您不应该更改navigationController的视图特性,主要是因为它旨在保存其他视图/控制器,而不是显示自己的视图(当然除了导航栏)。

所以我认为你不应该弄乱self.parentViewController.view并在每个视图控制器中坚持使用self.view