更改标签栏项目背景颜色而不影响色调

时间:2015-04-16 16:58:49

标签: ios xcode storyboard

我是iOS的新手,我被困在设计中。我搜索了几个帖子,但没有一个帮助。

大多数帖子建议用图片替换整个标签栏项目,我觉得这不是一个好主意。

我希望故事板中的配置(例如:用户定义的运行时属性)可以帮助更改项目的背景颜色而不影响其TINT COLOR。

这是我想要达到的结果。

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以像这样设置背景图片标签栏,最好通过这种方式自定义标签栏控制器。

在页眉文件中

#import <UIKit/UIKit.h>

@interface CustomTabBarController : UITabBarController

-(void) setBGView;

@end

在M档案中。

#import "CustomTabBarController.h"

@implementation CustomTabBarController
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
}
-(void)viewDidLoad
{
    [super viewDidLoad];
    [self setBGView];
}
-(void)setBGView
{
    // Background
    UIImageView* bgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TabBG.png"]] ; //You can create single color image  or Single Color view to add 
    bgView.frame = CGRectMake(0, self.view.frame.size.height-60, elf.view.frame.size.widdth, 60);
    [self.view addSubview:bgView];

@end

HTH,享受编码!!

答案 1 :(得分:1)

感谢来自@ViralSavaj和tagyro here

我设法实现类似于我的问题的输出,看起来像&#34; setSelectionIndicatorImage&#34;是实现这样输出的唯一方法。

但是,当你在其他设备上运行时输出可能不太好,解决这个问题的一种方法是根据设备分辨率绘制一个形状,你可以从上面的链接中获取片段

请注意您从@tagyro

重用的代码
CGSize tabSize = CGSizeMake(CGRectGetWidth(self.view.frame)/5, 49);

你可能想根据你的标签数量更改/ 5,在我的情况下,我只需要输入4来完成工作