Я пытаюсь затемнить окружающий район моего UIImageView и оставляю только часть (которую я определяю с помощью своей маски).Добавить полупрозрачную маску в CALayer?
Прямо сейчас я определяю свою маску и устанавливаю свой imageView.layer.mask, однако вместо того, чтобы затемнить остальную часть изображения, он полностью удаляет ее.
Пример типа эффекта я хочу:
пример того, что я получаю:
Ссылочные документы упоминают, что маска использует это альфа-слоя, так что я пытался манипулирование непрозрачность маски. Однако это только влияет на непрозрачность части, которую я хочу оставить в покое, в то время как остальная часть изображения все еще полностью вырезана.
Может ли кто-нибудь указать, что я делаю неправильно? Благодарю.
Вот мой код:
CAShapeLayer *mask = [CAShapeLayer layer];
GMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, nil, 1052, 448);
CGPathAddLineToPoint(path, nil, 2, 484);
CGPathAddLineToPoint(path, nil, 54, 1263);
CGPathAddLineToPoint(path, nil, 56, 1305);
CGPathAddLineToPoint(path, nil, 380, 1304);
CGPathAddLineToPoint(path, nil, 1050, 1311);
CGPathCloseSubpath(path);
mask.path = path;
CGPathRelease(path);
//mask.opacity = 0.5; //doesn't affect the surrounding portion, only the cut out area.
self.imageView.layer.mask = mask;
Другой вариант: иметь темную (но не полную непрозрачность) наложение с маской, чтобы скрыть часть вокруг вашей стрелки. – jtbandes