0

我通过以下方式在每个 UITableViewCell 的左侧附加了一个彩色状态指示器:

CGRect rect = CGRectMake(3, 1, 12, 42);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();

switch (cellState)
        {
            case State_OK:
                CGContextSetFillColorWithColor(context,
                                               [[UIColor customGreen] CGColor]);
                break;
            case State_Warning:
                CGContextSetFillColorWithColor(context,
                                               [[UIColor customYellow] CGColor]);
                break;
            case State_Critical:
                CGContextSetFillColorWithColor(context,
                                               [[UIColor customRed] CGColor]);
                break;
            case State_Unknown:
                CGContextSetFillColorWithColor(context,
                                               [[UIColor customGray] CGColor]);
                break;
        }

        CGContextFillRect(context, rect);
        UIImageView *imageView = [[UIImageView alloc] initWithImage:UIGraphicsGetImageFromCurrentImageContext()];
        imageView.alpha = 0.7;
        UIGraphicsEndImageContext();

        [cell.contentView addSubview:imageView];

return cell;

但不知何故,我得到了非常奇怪的颜色:

在此处输入图像描述

当我再次设置imageView.alpha = 1;颜色很好时:

在此处输入图像描述

像这样添加图像:

cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
cell.imageView.alpha = 0.7;

工作得很好!即使与alpha. 但我真的不想那样做。

4

1 回答 1

3

问题可能是颜色与单元格的背景混合。单元格的背景颜色是什么?

另一个原因可能是您的单元格图像正在被重复使用,因此您将图像设置在先前图像的顶部。

于 2013-11-11T10:44:04.093 回答