Как я могу получить непрозрачный UIView в качестве подсмотра полупрозрачного UIView?
У меня есть UIView с альфой 0.5, которую я добавляю в качестве подзаголовка к моему основному виду, чтобы очернить все остальное. Я хочу добавить дополнительный UIView в этот серый UIView в качестве подзаголовка - проблема в том, что когда я это делаю, мой недавно добавленный subview также частично прозрачен.
Есть ли способ сделать subview "игнорировать" альфа-значение своего супервизора и быть полностью непрозрачным?
Ответы
Ответ 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
Нет, любое представление наследует непрозрачность его родителя.