我试过tintColor = [UIColor redColor]
了,它完成了这项工作,但它只在按下按钮时显示预期的颜色。
在UIButtonTypeRoundedRect 类型的 UIButtons 的着色中,他们回答了同样的问题,但是您需要一个图像来实现它,有没有办法在没有图像的情况下做到这一点?
记住...没有图像!
使用图像是一种方法,但我想您已经清楚在您的问题中您不希望使用图像。这是我以编程方式创建和着色的按钮。
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(100, 100, 100,50);
[btn setTitle:@"Hello" forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor colorWithRed:128.0/255.0f green:0.0/255.0f blue:0.0/255.0f alpha:0.7]];
btn.frame = CGRectMake(100.0, 100.0, 120.0, 50.0);//width and height should be same value
btn.clipsToBounds = YES;
btn.layer.cornerRadius = 20;//half of the width
btn.layer.borderColor=[UIColor redColor].CGColor;
btn.layer.borderWidth=2.0f;
[self.view addSubview:btn];
您可以随心所欲地更改[UIColor ColorWithRed:
wo,甚至可以使用[UIColor redColor]
或任何其他您想做的事情。
这是一个屏幕截图:
无法为圆形按钮添加背景颜色,将按钮类型更改为自定义,然后使用石英芯设置圆形按钮。因此,将其添加到您的项目中并将其导入到 .m 中,它应该可以工作。希望这对你有用。
要将按钮更改为类似于您显示的图像的内容,请将框架更改为:
btn.frame = CGRectMake(50.0, 100.0, 200.0, 50.0);
并将半径更改为:
btn.layer.cornerRadius = 7;
应该这样做。
您可以创建一个方法来UIImage
从 a生成一个UIColor
,然后将返回的图像设置为按钮的背景,例如:
- (UIImage *)imageWithColor:(UIColor *)color {
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
UIImage *image = [self imageWithColor:[UIColor colorWithRed:151.0/255.0
green:36.0/255.0
blue:40.0/255.0
alpha:1.0]];
[self.button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[self.button setBackgroundImage:image forState:UIControlStateNormal];
self.button.layer.cornerRadius = 6.0;
self.button.layer.borderWidth = 1.0;
self.button.layer.borderColor = [UIColor darkGrayColor].CGColor;
self.button.clipsToBounds = YES;
使用这个我得到
我应该这样做:
从 Internet 下载按钮图像或自己创建图像,使其看起来像您想要的样子。Photoshop 可能是您最好的选择。确保您有透明背景并将其保存为 .png。然后将其添加到您的 xcode 项目中。制作按钮:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setBackgroundImage:[UIImage imageNamed:@"yourImage.png"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(buttonAction)
forControlEvents:UIControlEventTouchDown];
[btn setTitle:@"Use it!" forState:UIControlStateNormal];
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
btn.titleLabel.font = [UIFont systemFontOfSize:20];
btn.frame = CGRectMake(position and size of your button);
[self.view addSubview:btn];
yourImage.png 需要替换为您的图像名称。
这buttonAction
是您的按钮在被点击时执行的操作。如果你只是添加:
- (void) buttonAction
{
}
在文件中的任何位置,您在这些括号之间添加的任何内容都将被执行。
确保按钮的大小与 按钮的大小相同CGRect
,以确保它看起来没有被拉长或任何您不希望它看起来像的东西。
如果您有任何问题,请随时问他们。
希望这对你有帮助