次の方法で、すべての 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
。しかし、私は本当にそのようにしたくありません。