UIViewの親と子で別々のalpha値をもたせる方法

iPhoneSDKのUIViewで親ビューのalpha値を変更すると、子ビューのalpha値も強制的に同じ値になってしまいますが、以下のようにすると子は親とは別の透明度を持つことが出来るようです。


駄目な例

UIView *oya = [[UIView alloc] init];
oya.alpha = 0.5f;


UIView *ko = [[UIView alloc] init];
ko.alpha = 1.0f;


[oya addSubview:ko]; //子の透明度は0.5fになる


良い例

UIView *oya = [[UIView alloc] init];
oya.backgroundcolor =
[UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.5f];


UIView *ko = [[UIView alloc] init];
ko.backgroundcolor =
[UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:1.0f];


[oya addSubview:ko]; //子の透明度は1.0fになる


要はUIViewのalphaではなく、UIColorのalphaで透明度を調節することが肝のようです。
これで画像を使わなくても透明度の違う複雑な見た目が簡単に作れるー。
(注:多用すると重くなるたぶん)


これさっき発見したんだけど、もしかして有名な話だったりするのかしら。