Parece que tengo dificultades para agregar una máscara a través de CALayers. Simplemente estoy tratando de enmascarar un UIImageView. Aquí está mi código: (? Es de esta manera correcta para enmascarar)Agregar una máscara con CALayers
CALayer *maskLayer = [CALayer layer];
UIImage *mask = [UIImage imageNamed:@"mask.png"];
maskLayer.contents = mask;
UIImageView *viewToMask = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
viewToMask.image = [UIImage imageNamed:@"picture.png"];
viewToMask.layer.mask = maskLayer;
[self.view addSubview:viewToMask];
mask.png es negro con un círculo transparente perforado a través de él. No estoy seguro de dónde está fallando, tal vez en maskLayer.contents
, ya que se supone que es un CGImageRef
, pero recibo errores cuando lo configuro como mask.CGImage
, o a través de una variable local CGImageRef = mask.CGImage
. De todos modos, la forma en que su conjunto ahora no da errores, así que espero que esté bien.
¿Alguien sabe lo que está pasando, o cómo configurar correctamente las máscaras con CALayers? Gracias
Hey, gracias por su ayuda en la pregunta original, estaba tratando de seguir con sus sugerencias. De todos modos, eso tampoco parece ser el truco. No veo ninguna máscara ni mi viewToMask para ese asunto. – user339946
@ user339946: Probablemente necesites definir los 'bounds' de' maskLayer'. –
Frame funcionó para mí, los límites no. –