Нарисуйте UIView в оттенках серого?

Есть ли способ нарисовать данный UIView (и его подпредставления) в оттенках серого?

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


person Quentin    schedule 25.05.2012    source источник
comment
Добавляю комментарий к моему старому вопросу. В этой теме может быть решение: stackoverflow.com/questions/1298867 / convert-image-to-grayscale   -  person Quentin    schedule 05.12.2013


Ответы (3)


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

Проверьте это.

person theunexpected1    schedule 25.05.2012

Когда я хочу отключить представление, я обычно просто устанавливаю userInteractionEnabled = NO и alpha = .5 (или какой-нибудь другой ‹1. alpha)

person Ben Baron    schedule 26.05.2012

Добавьте CALayer в свой UIView с compositingFilter, установленным на colorBlendMode:

let grayLayer = CALayer()
grayLayer.frame = bounds
grayLayer.compositingFilter = "colorBlendMode"
grayLayer.backgroundColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1.0).cgColor
layer.addSublayer(grayLayer)
person gnew    schedule 07.05.2021