在iOS 7中更改键盘上方的自定义UIToolbar的颜色(而不仅仅是更改文本颜色)

时间:2014-03-24 16:06:23

标签: ios iphone uitoolbar uicolor uitoolbaritem

在我的应用程序中,我现在正在使用" dark"我以前使用Light Keyboard的所有UITextField键盘的外观。

在其中一个文本字段的键盘上方,我有一个带有一些按钮的自定义UIToolbar,允许用户选择键盘上方的一个选项。

这似乎比它需要的要困难得多,但是我试图让UIToolBar变暗而不是光,无论我尝试什么,工具栏总是白色的,我似乎只能改变颜色工具栏上的按钮而不是工具栏本身。

工具栏是在代码中创建的:

    UIToolbar *alertToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, 0.0f,
                                                                          self.view.window.frame.size.width, 44.0f)];

    alertToolBar.backgroundColor = [UIColor blackColor];
    //alertToolBar.tintColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:1.0f];

    alertToolBar.translucent = NO;
    alertToolBar.items =  @[ [[UIBarButtonItem alloc] initWithTitle:@" GBP"
                                                              style:UIBarButtonItemStyleBordered
                                                             target:self
                                                             action:@selector(barButtonAddText:)],
                             [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                           target:nil
                                                                           action:nil],
                             [[UIBarButtonItem alloc] initWithTitle:@" USD"
                                                              style:UIBarButtonItemStyleBordered
                                                             target:self
                                                             action:@selector(barButtonAddText:)],
                             [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                           target:nil
                                                                           action:nil],
                             [[UIBarButtonItem alloc] initWithTitle:@" EUR"
                                                              style:UIBarButtonItemStyleBordered
                                                             target:self
                                                             action:@selector(barButtonAddText:)],
                             [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                           target:nil
                                                                           action:nil],

    self.itemTextField.inputAccessoryView = alertToolBar;

我已经使用上面注释掉的代码(//alertToolBar.tintColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:1.0f];)尝试了它,并且该栏始终保持白色,但它只是"按钮"改变颜色。

如何将整个工具栏更改为黑色?

对此我们表示非常感谢!

2 个答案:

答案 0 :(得分:4)

我猜您使用的是iOS 7.0 SDK,因此在这种情况下,barTint不再适用。

在这种情况下你需要使用barTintColor。

Apple的文档:

在iOS 7.0上,条形的tintColor的行为已更改。它不再影响条形图的背景,其行为与添加到UIView的tintColor属性的描述相同。要为条形图的背景着色,请使用-barTintColor。

在这种情况下应该是:

alertToolBar.barTintColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:1.0f];

答案 1 :(得分:2)

我想你要设置:

@property(nonatomic, retain) UIColor *barTintColor