2009-02-04 4 views
15

Dans mon projet iPhone, j'ai un UIView où je mets en œuvre la méthode drawRect:CGContext - est-il un moyen de réinitialiser le contexte actuel

- (void)drawRect:(CGRect)rect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

Dans la méthode que je fais un tas de dessin lignes, images et textes utilisant ce contexte. Le problème est que lorsque je réutilise cette vue, le contexte n'est pas réinitialisé. Y a-t-il une méthode que je peux appeler pour réinitialiser le contexte d'une manière ou d'une autre? Vous voudrez peut-être vérifier CGContextSaveGState (contexte) et CGContextRestoreGState (contexte).

+0

Que voulez-vous dire par "réinitialiser le contexte"? –

+0

Je veux dire que quand ma vue va se dessiner à nouveau, elle est tout mutilée, comme si elle rappelait des choses comme où j'ai déplacé quelque chose à – rustyshelf

Répondre

15

Ils vous permettront de pousser et d'afficher l'état actuel du contexte.

Si votre vue est tronquée, vérifiez le paramètre contentMode de votre vue.

1

Vous pouvez également utiliser CGContextClearRect(context, CGRectMake(0, 0, width, height));

+1

Ceci remplit le contexte avec une couleur claire, mais ne réinitialise pas les informations d'état de contexte (telles que écrêtage, etc.) – pauln

Questions connexes