为 Bar 按钮项目和色调添加 Bg

Posted

技术标签:

【中文标题】为 Bar 按钮项目和色调添加 Bg【英文标题】:adding Bg for Bar button item and tint color 【发布时间】:2015-12-31 12:07:32 【问题描述】:

我以编程方式创建了一个条形按钮项。现在它的外观线简单文本。我需要设置没有边框的背景颜色,还需要以编程方式设置色调颜色。 这是我创建条形按钮项的代码:

UIBarButtonItem *callBtn = [[UIBarButtonItem alloc] initWithTitle:@"Call Me" style:UIBarButtonItemStylePlain target:self action:@selector(signUpButtonTapped:)];
    self.navigationItem.rightBarButtonItem = callBtn;

而且背景颜色应该是:#F9F9F9

色调颜色应该是:00ACC1

请帮我做

我需要这样的图片:

【问题讨论】:

【参考方案1】:

使用自定义按钮进行自定义控制 遵循代码可能会有所帮助

 UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.frame = CGRectMake(0,0,60,30);
[button setBackgroundColor:[UIColor yourColor]];
[button setTitleColor:[UIColor yourColor] forState:UIControlStateNormal];
[button setTitle:@"Call Me" forState:UIControlStateNormal];
[button addTarget:self action:@selector(navigateToDiscussionScreen) forControlEvents:UIControlEventTouchUpInside];

UIView *view = [[UIView alloc] initWithFrame:button.bounds];
view.backgroundColor = [UIColor clearColor];
[view addSubview:button];
UIBarButtonItem *logoBtn = [[UIBarButtonItem alloc]initWithCustomView:view];

【讨论】:

我需要设置左栏按钮项目。我在 imagview 中出现initwithfram: imageview.bound 错误 不要只是复制粘贴,根据需要进行调整,您可能还需要设置色调,背景和前景色,快乐编码:) 不,我是 ios 新手。这就是为什么不知道我是否需要为我的 uibutton 创建框架以显示背景颜色 已更新,只需使用颜色而不是 yourColor,您将拥有所需的按钮 让我们continue this discussion in chat。【参考方案2】:

在您的 Appdelegate 中设置 Bar tint:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

    UIColor *barColor = [UIColor colorWithRed:0 green:172/255.0 blue:193/255.0 alpha:1.0];
    [[UINavigationBar appearance]setBarTintColor: barColor];
    return YES;

现在在您的视图控制器中:

  UIButton *btn =  [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(0,0,80,30);
    [btn addTarget:self action:@selector(signUpButtonTapped:) forControlEvents:UIControlEventTouchUpInside];

    UIColor *barColor = [UIColor colorWithRed:0 green:172/255.0 blue:193/255.0 alpha:1.0];

    [btn setTitle:@"Call Me" forState:UIControlStateNormal];
    [btn setTitleColor:barColor forState:UIControlStateNormal];

    btn.backgroundColor = [UIColor lightGrayColor];

    UIBarButtonItem *callBtn =[[UIBarButtonItem alloc]initWithCustomView:btn];

    self.navigationItem.rightBarButtonItem = callBtn;

【讨论】:

我们不应该在 APPDELEGATE 中添加任何代码..这是我们的规则

以上是关于为 Bar 按钮项目和色调添加 Bg的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 7 中为 uinavigation 栏设置色调颜色而不中断栏按钮项目 [重复]

更改 UIAlertview 和 UIActionsheet 按钮的色调颜色

在自定义导航栏中设置条形按钮项目颜色

无法使用白色按钮项色调使 UIToolBar 变为黑色(ios 9,Swift)

为一个按钮覆盖 [UIButton Appearance]

iOS 7 中忽略的条形按钮项目着色