2

マスクレイヤーを持つメインレイヤーがあります。

マスク レイヤーにはサブレイヤーもあります (結果として得られるさまざまなマスク形状内でレイアウトを変更するため)。

ただし、マスク サブレイヤーは実際のマスキングには影響しません。:(

マスクレイヤーでできることはありますか?アニメで使いたいので、性能も重視。


マスク レイヤーは、最初は完全な白で、次に小さい黒/グレースケール コンテンツを配置し、結果を確認したいだけです。グレースケール画像で CALayer をマスクできますか?


// Disable layer actions with this delegate object.
self.layerDelegate = [TCLayerDelegate new];

// Create.
CALayer *layer = [CALayer layer];
layer.delegate = self.layerDelegate;

// Setup.
layer.contents = (id)self.colorImage.CGImage; // A simple opaque image with a color.
layer.frame = (CGRect){CGPointZero, self.size};
layer.anchorPoint = (CGPoint){ 0.0, 0.5 };

// Align.
self.layer.position = self.a;

// Create mask.
self.maskLayer = [CALayer layer];
self.maskLayer.delegate = self.layerDelegate;

// Setup.
self.maskLayer.contents = (id)self.maskImage.CGImage; // A black opaque image for now.
self.maskLayer.frame = (CGRect){CGPointZero, self.size};

// Add mask.
self.layer.mask = self.maskLayer;

// Add circles.
[self.circle createLayer]; // This object amongst many other things creates a transparent layer that holds a white circle.

// Add to mask.
[self.maskLayer addSublayer:self.circle.layer];

// Now I'd like to see layer masked with the circle.
4

0 に答える 0