I am trying to crop an image using CAShapeLayer with this code
CALayer* contentLayer = [CALayer layer];
CAShapeLayer* mask = [CAShapeLayer layer];
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 10, 10);
CGPathAddLineToPoint(path, NULL, 10, 80);
CGPathAddLineToPoint(path, NULL, 80, 80);
CGPathAddLineToPoint(path, NULL, 80, 10);
mask.path = path;
[contentLayer setContents:(id)[[UIImage imageNamed:@"image.png"] CGImage]];
[contentLayer setMask:mask];
[[self layer]addSublayer:contentLayer];
After executing this I can see just empty view;
You never set the frame of your contentLayer, so it defaults to CGRectZero, which makes its contents invisible. Set the frame to have the size of your image and you should see it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With