UIImageView の周囲を暗くし、一部をそのままにしておきます (マスクで定義します)。
現在、マスクを定義して 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;