¿Es posible recortar un CALayer en una ruta arbitraria? Soy consciente de que puedo filmar a los límites del superlayer, pero en este caso necesito ser mucho más prescriptivo.Recortar un CALayer en una ruta arbitraria
TIA, Adam
¿Es posible recortar un CALayer en una ruta arbitraria? Soy consciente de que puedo filmar a los límites del superlayer, pero en este caso necesito ser mucho más prescriptivo.Recortar un CALayer en una ruta arbitraria
TIA, Adam
Utilice un CAShapeLayer como la máscara para la capa que desea recortar. CAShapeLayer tiene una propiedad de ruta que toma un CGPathRef.
Sí, puede anular el drawInContext de su capa personalizada.
func addPathAndClipIfNeeded(ctx:CGContext) {
if (self.path != nil) {
CGContextAddPath(ctx,self.path);
if (self.stroke) {
CGContextSetLineWidth(ctx, self.lineWidth);
CGContextReplacePathWithStrokedPath(ctx);
}
CGContextClip(ctx);
}
}
override public func drawInContext(ctx: CGContext) {
super.drawInContext(ctx)
addPathAndClipIfNeeded(ctx)
}
O puede crear una CAShapeLayer como máscara.