9
votes

Déterminez si UIImageView a été tourné

Je tournois un uiimageview de cette manière: xxx

Comme vous pouvez le voir, l'image peut soit être de haut en bas. Y a-t-il la possibilité de détecter si l'image est en hausse ou en bas, afin de faire quelque chose comme ceci: xxx


0 commentaires

3 Réponses :


11
votes

Si vous voulez simplement dire si l'image a été tournée à l'aide d'une transformation affine, vous pouvez le faire:

CGAffineTransform t = CGAffineTransformMakeRotation(M_PI);
if (CGAffineTransformEqualToTransform(photoView.transform, t)) {
    // rotated by M_PI
    ...
}


1 commentaires

Un peu hors sujet, tandis que moi, parfois, faire des choses similaires dans mon code, il est recommandé de ne pas vues d'utiliser pour stocker des données (dans ce cas, la rotation de l'affichage de l'image), « bonne » solution serait d'avoir une propriété les données sous-jacentes ou dans un contrôleur et l'appliquer à la vue lorsque la propriété à jour.



1
votes

Vous pouvez consulter l'angle du Photoview , si elle est de 0,00 cela signifie son et si ses 3 ou 3.13 ou d'une valeur proche de lui, puis il montre que son bas. (Vous pouvez vous connecter la valeur exacte de bas).

angle CGFloat = [(NSNumber *) [Photoview valueForKeyPath: @ "layer.transform.rotation.z"] floatValue]; NSLog (@ "% f", angle);


0 commentaires

0
votes

Swift 4 strong>

if transform.isIdentity { }


0 commentaires