CAShapeLayer裁剪图像

我正在尝试使用此代码使用CAShapeLayer裁剪图像

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]; 

执行此操作后,我只能看到空视图;

您从未设置contentLayerframe ,因此它默认为CGRectZero ,这使其内容不可见。 将框架设置为具有图像的大小,您应该看到它。