我正在使用基于标签栏的应用程序。
我已在applicationDidFinishLaunchingWithOptions
的标签栏中设置背景图片,代码如下所示。
UIImage* tabBarBackground = [UIImage imageNamed:@"tabbarbottom2.png"];
[[UITabBar appearance] setBackgroundImage:tabBarBackground];
我在故事板中这样做。
现在,使用此代码。我的Tabbar的背景图像已经设置好并且运行良好。
但我想为tabbar的不同viewcontrollers设置不同的背景。
我经常搜索,但找不到办法。
我被困在这一段时间了。
请帮我解决这个问题。
提前致谢。
答案 0 :(得分:1)
您始终可以覆盖viewDidLoad
中的默认值。如果要为不同的选项卡栏控制器设置背景图像,则必须将UITabBarController子类化并将以下内容添加到viewDidLoad。
[self.tabBar setBackgroundImage:[UIImage imageNamed:@"tabbarForThisController.png"]];
如果您需要不同的图片,具体取决于所选的标签,您必须添加
[self.tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tabBarForThisTab.png"]];
到所选标签的视图控制器中的viewDidLoad
。
答案 1 :(得分:1)
在每个viewController的viewDidLoad方法中设置tabBar外观是最佳做法。这样,外观更改看起来更自然,而不是tabBar在已经向用户显示之后更改外观,就像在viewDidAppear中执行此操作一样。您可以通过以下方式完成此任务:
- (void)viewDidLoad:(BOOL)animated {
UIImage* tabBarBackground = [UIImage imageNamed:@"tabbarbottom2.png"];
[[UITabBar appearance] setBackgroundColor:tabBarBackground];
}