11
votes

CgaffinetransformMakerotation et problèmes de change automatique sous iOS8

Après avoir appliqué une transformation de rotation sur un simple UIView xxx pré>

qui a les contraintes suivantes p> xxx pré>

i obtenir deux résultats différents entre iOS7 .1 et iOS8 Beta 5: p>

iOS7.1 P>

<UIView: 0x16e5a530; frame = (-110 140; 270 50); transform = [0, -1, 1, 0, 0, 0]; opaque = NO; layer = <CALayer: 0x16e61880>>


6 commentaires

J'ai un problème similaire et je suis presque totalement certain que c'est due à la manière dont ils ont tout rendu interface orienté sur iOS 8 (modifiant essentiellement comment le point d'origine des systèmes de coordonnées est déterminé) mais je n'ai pas bien cloué si c'est tout, ou s'il y a un bogue dans iOS 8, ou quoi. Pour l'instant, j'ai modifié la seule petite section de mon application qui utilise la rotation pour utiliser des CGRRES calculées (UGH)


Toute solution à ce problème?


Rien encore, il faut vérifier la dernière version de l'IOS8. Je vais mettre à jour.


Avez-vous trouvé une solution encore? Je n'ai pas ... avancé votre question.


Vous n'avez pas encore vérifié cela sur iOS 8 GM?


J'ai aussi ce problème avec une transformation d'échelle.


3 Réponses :


0
votes

Essayez d'ajouter la vue simple à une vue de conteneur. J'ai vu des problèmes similaires dans au moins deux de mes points de vue et dans les deux cas les ajoutant à une vue de conteneur semble résoudre le problème.

Modifier

Qu'est-ce que je veux dire par une vue de conteneur, il suffit simplement d'ajouter la vue simple à un UIView, puis appliquez la contrainte et la rotation au conteneur à la place.


0 commentaires

3
votes

pas vraiment une solution, mais plus d'un travail autour.

J'ai trouvé que les contraintes de haut, de fond, de gauche et de droite se comportent différemment lorsque vous construisez sur iOS 8 VS iOS 7 lors de l'utilisation de CGAFFILETANSFORMAtation . Cependant, Centrex et Centy se comportent de la même manière pour chacun. De plus, les contraintes de hauteur et de largeur se comportent de la même manière que vous addConstraintres à la même vue que vous contraintwithitem .

Donc, si vous pouvez donc changer votre contraintes pour une vue qui utilise cgaffinetransformMakerotation pour seulement utiliser la hauteur, la largeur, le centrex, la centrale, vous devriez pouvoir disposer des mêmes contraintes d'apparaître la même lorsque vous construisez sur les deux versions iOS.

ci-dessous est un exercice de mon propre code, qui me donnait la même mise en page quelle que soit la version iOS: xxx


0 commentaires

0
votes

Documentation:

@Property (nonatomic) CGAFFINETRANSFORMUNFORT TRANSFORMER

L'origine de la transformation est la valeur de la propriété centrale, ou la propriété AnchorPoint de la couche si elle a été modifiée. (Utilisez le calque propriété pour obtenir l'objet de couche d'animation de base sous-jacent.) Le La valeur par défaut est CGAFFINETRANSELITY.

Vous devez définir le point d'ancrage de votre vue avant la rotation.

Viewview.layer.RanchorPoint = CGPointMake (0,5, 0,5);

Les valeurs doivent être comprises entre 0 et 1.

Entrez la description de l'image ici

échantillon ici

peut être modifié la valeur par défaut CGAFINETRANSELIDENTITY?


0 commentaires