UIView de mise à l'échelle lors de l'animation

J'ai un custom UIView pour afficher une image en mosaïque.

    - (void)drawRect:(CGRect)rect
    {
        ...
        CGContextRef context = UIGraphicsGetCurrentContext();       
        CGContextClipToRect(context,
             CGRectMake(0.0, 0.0, rect.size.width, rect.size.height));      
        CGContextDrawTiledImage(context, imageRect, imageRef);
        ...
    }

Maintenant, je suis en train d'animer le redimensionnement de ce point de vue.

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];

//change frame of view

[UIView commitAnimations];

Ce que je m'attends est pour la surface carrelée juste pour se développer, laissant sur le carreau les tailles constante. Ce qui se passe au lieu de cela est que, bien que la région se développe le contenu d'origine de l'affichage est adapté à la nouvelle taille. Au moins au cours de l'animation. De sorte que le au début et à la fin de l'animation, tout est bon. Au cours de l'animation, les tuiles sont déformées.

Pourquoi CA essayant à l'échelle? Comment puis-je l'empêcher de le faire? Qu'ai-je manqué?

  • Elle semble liée à l'affichage de contentMode. Mais la mise à UIViewContentModeLeft ne résout pas vraiment non plus. Il n'est alors pas plus à l'échelle, mais les pop à la nouvelle taille de l'image tout de suite. Le paramètre UIViewContentModeRedraw ne semble pas être l'appel à drawRect à tous les cours de l'animation.
InformationsquelleAutor tcurdt | 2009-05-03