Za pomocą poniższego kodu pomyślnie maskuję część mojego rysunku, ale jest to odwrotność tego, co chcę zamaskować. To maskuje wewnętrzną część rysunku, gdzie chciałbym zamaskować zewnętrzną część. Czy istnieje prosty sposób na odwrócenie tej maski?Maska odwracająca iOS w drawRect
myPath
poniżej to UIBezierPath
.
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGMutablePathRef maskPath = CGPathCreateMutable();
CGPathAddPath(maskPath, nil, myPath.CGPath);
[maskLayer setPath:maskPath];
CGPathRelease(maskPath);
self.layer.mask = maskLayer;
Może można odpowiedzieć na to pytanie też: http://stackoverflow.com/questions/30360389/ use-layer-mask-to-make-parts-of-the-uiview-transparent – confile
Ta odpowiedź jest świetna i działa bezbłędnie. –
Usunięto CGPathRelease (maskPath)? działa, ale czy mogę dostać wyciek pamięci? (Swift 2.2, iOS 9.0) Nie można znaleźć żadnego odniesienia do niego. – Maik639