Dois-je pouvoir remplacer drawInContext() et dessiner en dehors des limites de mon CALayer? Même si ma couche a maskToBounds sur NO (la valeur par défaut) mon drawInContext() est appelé avec un ensemble de clips aux limites de ma couche et je suis incapable de dessiner à l'extérieur de celui-ci.Pourquoi mon CGContext est-il découpé en limites?
Ma couche d'essai fait quelque chose comme ceci:
-(void)drawInContext:(CGContextRef)context
{
[super drawInContext:context];
NSLog(@"mask to bounds=%d", self.masksToBounds); // NO
CGRect clip = CGContextGetClipBoundingBox(context);
NSLog(@"clip=%f,%f,%f,%f", clip.origin.x, clip.origin.y, clip.size.width, clip.size.height); // reports the bounds
CGContextSetStrokeColorWithColor(context, [[UIColor whiteColor] CGColor]);
CGContextBeginPath(context);
CGContextSetLineWidth(context, 5.0);
CGContextMoveToPoint(context, 0, 0);
CGContextAddLineToPoint(context, 500, 0.0); // wider than my layer...
CGContextStrokePath(context);
}
et voici comment je l'ai mis en place:
- (void)viewDidLoad
{
[super viewDidLoad];
CALayer *layer = [[MyLayer alloc] init];
layer.needsDisplayOnBoundsChange=YES;
layer.frame = CGRectMake(50, 50, 200, 200);
[self.view.layer addSublayer:layer];
}
Est-ce juste une limitation des couches d'animation de base? (Dois-je dessiner dans la couche au-dessus de cette couche?)
merci.