J'ai un UIView personnalisé pour afficher une image en mosaïque.Mise à l'échelle UIView pendant l'animation
- (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 j'essaye d'animer le redimensionnement de cette vue. Ce que je m'attendrais à ce que la zone carrelée ne fasse que grossir, laissant les tailles de carreaux constantes. Ce qui se passe à la place, c'est que pendant que la zone se développe, le contenu original de la vue est redimensionné à la nouvelle taille. Au moins pendant l'animation. Donc au début et à la fin de l'animation tout est bon. Pendant l'animation, les tuiles sont déformées.
Pourquoi CA tente-t-il d'évoluer? Comment puis-je l'empêcher de le faire? Qu'est-ce que j'ai raté?
Il semble que cela soit lié au contentMode de la vue. Mais le paramétrer sur UIViewContentModeLeft ne le résout pas non plus. Il ne fait alors plus d'échelle, mais apparaît immédiatement à la nouvelle taille d'image. Le paramétrer sur UIViewContentModeRedraw ne semble pas appeler drawRect du tout pendant l'animation. – tcurdt