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

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

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

Ответы [ 5 ]

110 голосов
/ 03 сентября 2012

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

Objective-C

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

Это не то же самое, что:

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

Swift

view.backgroundColor = UIColor.black.withAlphaComponent(0.6)
12 голосов
/ 24 мая 2011

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

[OpaqueView] [DimmingView]
     |             |
      [OverlayView]
2 голосов
/ 24 мая 2011

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

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

Теперь добавьте свои подпредставления на UIView.

ваши подпредставления больше не будут принимать свойство alpha ..:)

2 голосов
/ 24 мая 2011

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

1 голос
/ 24 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...