当我更改其默认色调时,UIButton,TabBarItem和BarButtonItem始终着色为白色

时间:2015-04-08 17:28:44

标签: ios ios7 uibutton

我正在使用带有按钮的TabBars和工具栏编写应用程序,我想使用自己的色调。
虽然我可以更改我在Storyboard中创建的元素的色调颜色,但是当我尝试将其默认蓝色色调更改为另一个时,我以编程方式创建的元素会卡在几乎看不见的白色中。以下是一些使用示例:

// a toolbar over the keyboard, note the btnDone
var keyboardToolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.bounds.size.width, 44))
keyboardToolbar.barStyle = UIBarStyle.Default

var btnDone: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: "textViewDone")
keyboardToolbar.setItems([btnDone], animated: true)

field.inputAccessoryView = keyboardToolbar

当我用btnDone.tintColor = UIColor(red: 153, green: 102, blue: 51, alpha: 1)更改色调颜色时,我得到以下结果: Result

你甚至看不到按钮。如果我不写上面的那行,我会得到系统的蓝色色调。这个问题扩展到UITabBarItems和UIButtons。

更新

经过一些调查和测试后,我发现了为什么会发生这种情况。我使用系统颜色运行相同的代码(如[UIColor brownColor]),令人惊讶的是它有效!所以现在的问题是:色调颜色仅限于系统颜色吗? RGB颜色中是否有任何颜色不适合作为淡色?

2 个答案:

答案 0 :(得分:0)

尝试下面的代码我在iOS7& i0S8。工作良好。见截图。

- (void)textFieldDidBeginEditing:(UITextField *)textField{

    UIToolbar * keyboardToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];

    keyboardToolBar.barStyle = UIBarStyleDefault;
    keyboardToolBar.translucent = NO;
    keyboardToolBar.tintColor = [UIColor colorWithRed:0.0f green:1.0f blue:0.0f alpha:1.0f];

    [keyboardToolBar setItems: [NSArray arrayWithObjects:
                                [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
                                [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:nil],
                                nil]];
    textField.inputAccessoryView = keyboardToolBar;
}

enter image description here

答案 1 :(得分:0)

RGB值应为0.0f - 1.0f

范围内的小数值

所以将你的值除以255.0f就可以了!

btnDone.tintColor = UIColor(red: 153/255.0f, green: 102/255.0f, blue: 51/255.0f, alpha: 1)

现在输入的值大于1.0f,即153,102& 51,它假设全部为1.0f和RGB颜色,所有值都为1.0f,为白色,所有值为0.0f的都是黑色!

相关问题