日々精進

新しく学んだことを書き留めていきます

UIViewの親子で別々のalphaを持たせる方法

以下のようにbackgroundcolorにUIColorをセットするとできるらしい。
複雑なレイアウトを実現するときに使えるかも。

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値をもたせる方法 - Buddha-Over-Flow


と、思ったけどやっぱりこれ使えない。
設定できるのが背景色の透明度だけだから、subviewの透明度は変わらないしラベルの文字列とかも透明に出来ない。
親子で別々の透明度を設定したかったら↓のサイトで紹介されているように、別々の透明度を設定したいViewが親子でなくなるようにView階層をいじるしかないっぽい。
uiview - iPhone Programming: Applying Alpha to Parent but not to Child Views - Stack Overflow