0

我正在使用自定义按钮,我想在没有图像的情况下禁用按钮时更改按钮的外观。这是我正在使用的代码:

-(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)]方法,外观不会改变,但如果我不调用它,那么外观会改变,但按钮仍然是可点击的:/

欢迎任何想法。先感谢您!

4

1 回答 1

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,然后通过此方法使用我正在使用的颜色设置按钮背景图像。

于 2013-10-03T11:08:29.653 回答