私はCAShapeLayerを使用してそれを行うことができましたが見つかりました:
CAShapeLayer *mask = [[[CAShapeLayer alloc] init] autorelease];
mask.frame = backgroundLayer.bounds;
mask.fillColor = [[UIColor blackColor] CGColor];
CGFloat width = backgroundLayer.frame.size.width;
CGFloat height = backgroundLayer.frame.size.height;
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, nil, 0, 0);
CGPathAddLineToPoint(path, nil, width, 0);
CGPathAddLineToPoint(path, nil, width, height);
CGPathAddLineToPoint(path, nil, (width/2) + 5, height);
CGPathAddLineToPoint(path, nil, width/2, height - 5);
CGPathAddLineToPoint(path, nil, (width/2) - 5, height);
CGPathAddLineToPoint(path, nil, 0, height);
CGPathAddLineToPoint(path, nil, 0, 0);
CGPathCloseSubpath(path);
mask.path = path;
CGPathRelease(path);
backgroundLayer.mask = mask;
私は本当にPNGマスクを使用することはできません - ビューは動的にサイズです。 – Simon
Quartz描画APIを使用してマスクを動的に作成する - http://www.codeproject.com/KB/iPhone/iOSGetStarted01.aspx – deanWombourne
レイヤー自体は常に長方形(Appleのドキュメント)なので、これは正当な答えです。 .pngイメージは実行可能なソリューションです。 –