我在iphone的内置应用程序中看到有一个红色删除UIButton。我的问题是,如何更改按钮的颜色。通常在属性检查器中有一个“tint”属性,但在使用UI按钮时没有。 有没有办法以编程方式更改颜色? 我感谢任何帮助。
答案 0 :(得分:3)
UIButton
的色调仅适用于UIGlassButton
,这是私有未记录的API。使用 private 未记录的API的一些解决方案是使用图像或尝试drawing your own gradient。
资源:
http://cocoawithlove.com/2008/09/drawing-gloss-gradients-in-coregraphics.html
答案 1 :(得分:3)
您可以使用按钮图层制作带颜色的按钮。首先将QuartzCore框架添加到您的项目中。然后将#import <QuartzCore/QuartzCore.h>
添加到您的视图类中。要制作一个红色按钮,请执行此操作
UIButton *myButton = [UIButton buttonWithType: UIButtonTypeCustom];
[myButton setFrame: CGRectMake(10.0f, 10.0f, 300.0f, 44.0f)];
[[myButton layer] setBackgroundColor: [[UIColor redColor] CGColor]];
[self addSubview: myButton];
[myButton release];
希望这有帮助!
答案 2 :(得分:3)
如果您的按钮类型为UIButtonTypeRoundedRect
而不是UIButtonTypeCustom
,则在图层上设置背景颜色不起作用。
试试这个,它对我有用。
UIButton *myButton = [UIButton buttonWithType: UIButtonTypeRoundedRect];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.buttonAddToOrder.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor redColor] CGColor], (id)[[UIColor redColor] CGColor], nil];
gradient.cornerRadius = 10;
[myButton.layer insertSublayer:gradient atIndex:0];
希望这可能会有所帮助。