我正在使用自定义按钮,并且我想在没有图像的情况下禁用按钮的外观。 这是我正在使用的代码:
-(void)setEnabled:(BOOL)enabled
{
[super setEnabled:enabled];
if (enabled) {
self.backgroundColor = UIColorFromRGB(0x961e1e);
[[self layer] setBorderColor:[UIColorFromRGB(0x7d1919) CGColor]];
}else{
self.backgroundColor = UIColorFromRGBWithAlpha(0x751717,0.6);
[[self layer] setBorderColor:[UIColorFromRGBWithAlpha(0x6e1616,0.6) CGColor]];
}
}
如果我调用[super setEnabled:(BOOL)]
方法,外观不会改变,但如果我没有调用,那么外观会改变,但按钮仍然是可点击的:/
欢迎任何想法。 提前谢谢!
答案 0 :(得分:0)
我最终用彩色创建图像,我在stackoverflow.com找到了解决这个问题的好方法:
+ (UIImage *) imageFromColor:(UIColor *)color {
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
我将此作为UIImage的类别添加,然后我通过此方法使用我正在使用的颜色设置按钮背景图像。