Подтвердить что ты не робот

Как я могу получить непрозрачный UIView в качестве подсмотра полупрозрачного UIView?

У меня есть UIView с альфой 0.5, которую я добавляю в качестве подзаголовка к моему основному виду, чтобы очернить все остальное. Я хочу добавить дополнительный UIView в этот серый UIView в качестве подзаголовка - проблема в том, что когда я это делаю, мой недавно добавленный subview также частично прозрачен.

Есть ли способ сделать subview "игнорировать" альфа-значение своего супервизора и быть полностью непрозрачным?

4b9b3361

Ответ 1

Нет, не совсем. То, что вы хотите, - это сделать свой оверлейный вид и сделать его простым цветом фона. В качестве подглядывания этого нового наложения сделайте свое представление о том, что будет серым. И в качестве представления о том, что вы видите, что вы хотите быть непрозрачным, вы должны быть непрозрачными.

[OpaqueView] [DimmingView]
     |             |
      [OverlayView]

Ответ 2

Установите цвет фона UIView, а не непосредственно.

Objective-C

UIView *view;
...
view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:.6];

Это не так же, как:

view.backgroundColor = [UIColor blackColor];    
view.alpha = .6;

стриж

view.backgroundColor = UIColor.black.withAlphaComponent(0.6)

Ответ 3

Не помещайте его в полупрозрачный вид. Сделайте его братом для полупрозрачного представления и поместите его над ним, используя z-порядок.

Ответ 4

Это будет работать, только если у вас есть изображение на фоне.

Вместо уменьшения alpha от UIView добавьте UIImageView в это представление, а затем уменьшите альфу UIImageView.

теперь добавьте свои подпрограммы в UIView.

ваш subviews больше не будет использовать альфа-свойство..:)

Ответ 5

Нет, любое представление наследует непрозрачность его родителя.