Маска CALayer с композитным CALayer?

У меня есть основной слой, который имеет слой маски.

Слой маски также имеет подслои (для изменения макетов в рамках различных форм маски).

Но подслои маски не влияют на фактическое маскирование.:(

Что я могу сделать со слоем маски? Я хочу использовать его в анимации, поэтому производительность также в центре внимания.


Слой маски полностью белый при запуске, затем я добавляю более мелкое содержание черного / серого, и я просто хочу увидеть результат. Можно ли вообще замаскировать 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.

0 ответов

Другие вопросы по тегам