Просмотр с низким альфа - Subview с высоким альфа - PullRequest
20 голосов
/ 07 марта 2012

У меня есть UIView с альфа-значением .5 Я добавил подпредставление с альфа-значением 1.

Кажется, что подпредставление наследует альфа-значение родительского элемента.Есть ли способ сделать подпредставление более непрозрачным, чем его родительское представление?

код выглядит так:

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];

Результат выглядит следующим образом: enter image description here

Я бы хотел видеть кнопку под серым UIView, но не под белым UITextField.Как мне это сделать?

1 Ответ

79 голосов
/ 07 марта 2012

Установите альфа цвета фона inputPrompt, а не его альфа напрямую.

[inputPrompt setBackgroundColor:[[UIColor darkGrayColor] colorWithAlphaComponent:0.5]];
//[inputPrompt setAlpha: .5]; 
...