J'ai un problème avec l'inversion d'une échelle de transformation pour ainsi dire. Voici mon code:Inverser une échelle de transformation
- (void)updateTransforms {
CGAffineTransform holeTransform = CGAffineTransformIdentity;
holeTransform = CGAffineTransformTranslate(holeTransform, _holeOffset.x, _holeOffset.y);
holeTransform = CGAffineTransformRotate(holeTransform, _holeRotation);
//Problem code:
holeTransform = CGAffineTransformScale(holeTransform, _holeScale, _holeScale);
self.transform = holeTransform;
self.imageToUse.transform = CGAffineTransformInvert(holeTransform); }
Ceci est fondamentalement une méthode qui me permet de faire pivoter, de faire un panoramique, et de mettre à l'échelle mon objet. L'effet désiré que je veux est le contraire de chaque action. Donc, si vous vous déplacez vers la gauche, l'image se déplace vers la droite, tourne vers la gauche, pivote vers la droite, agrandit, l'image redescend au même rythme. Ce code fonctionne parfaitement jusqu'à présent pour le panoramique et la rotation. Le problème que je crois réside dans l'inversion de l'échelle, parce que l'échelle ne devient pas réellement négative, elle augmente simplement ou diminue de 1,0. Comment puis-je modifier mon code pour que la mise à l'échelle fonctionne correctement? Merci.
Salut Rob, mettre le _holeScale à 1.0 était en effet le coupable. Après cela, vous n'avez pas besoin de multiplier le _holeScale par sender.scale et vous? – user339946
Essayez-le et voir. –
Je vois, j'ai mal compris comment fonctionnait CGAffineTransformScale. – user339946