我正在使用带有按钮的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)
更改色调颜色时,我得到以下结果:
你甚至看不到按钮。如果我不写上面的那行,我会得到系统的蓝色色调。这个问题扩展到UITabBarItems和UIButtons。
经过一些调查和测试后,我发现了为什么会发生这种情况。我使用系统颜色运行相同的代码(如[UIColor brownColor]
),令人惊讶的是它有效!所以现在的问题是:色调颜色仅限于系统颜色吗? RGB颜色中是否有任何颜色不适合作为淡色?
答案 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;
}
答案 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的都是黑色!