低alpha的视图 - 高alpha的子视图

Sto*_*ker 20 alpha objective-c uiview ios

UIView的alpha值为.5我添加了一个alpha值为1的子视图.

子视图似乎继承了父级的alpha值.有没有办法让子视图比其父视图更不透明?

代码看起来像这样:

CGRect promptFrame = CGRectMake(55, 80, 180, 50);
UIView *inputPrompt = [[UIView alloc] initWithFrame: promptFrame];
[inputPrompt setBackgroundColor: [UIColor darkGrayColor]];
[inputPrompt setAlpha: .5];
inputPrompt.layer.cornerRadius = 8;
inputPrompt.layer.masksToBounds = YES;

CGRect fileTextFieldFrame = CGRectMake(10, 15, 150, 25);
UITextField *filePrompt = [[UITextField alloc] initWithFrame: fileTextFieldFrame];
[filePrompt setBorderStyle:UITextBorderStyleRoundedRect];
[filePrompt setClearButtonMode:UITextFieldViewModeWhileEditing];
[filePrompt setBackgroundColor: [UIColor whiteColor]];
[filePrompt setAlpha: 1];
Run Code Online (Sandbox Code Playgroud)

结果如下: 在此输入图像描述

我希望能够看到灰色下方的按钮,UIView但不能看到白色下面的按钮UITextField.我该怎么做呢?

NJo*_*nes 79

设置inputPrompt背景颜色的alpha不是直接的alpha.

[inputPrompt setBackgroundColor:[[UIColor darkGrayColor] colorWithAlphaComponent:0.5]];
//[inputPrompt setAlpha: .5]; 
Run Code Online (Sandbox Code Playgroud)