2009-05-13 5 views
1

Je trouve cela plutôt déroutant. Lorsque vous voulez faire pivoter une vue, elle sera pivotée par son point central. Mais ce n'est pas toujours bon. Ainsi, si vous devez faire pivoter une origine spécifiée dans votre vue, vous devez définir la propriété anchorPoint de la couche de la vue.Comment faire pivoter une vue en fonction d'une origine de rotation, dont la position est spécifiée dans le système de coordonnées de la vue?

Maintenant, le problème est que cette propriété Anchorpoint prend des valeurs assez déroutant pour le programmeur moyen intelligent;)

Ils sont de 0 à 1, pour autant que je sache. De plus, le système de coordonnées est retourné dans le système de coordonnées de la vue, où je pense que 0 est la plus petite valeur dans le système de coordonnées de la vue, et 1 la plus grande.

myView.layer.anchorPoint = CGPointMake(0.5, 0.5); 

définirait le point d'ancrage au milieu de la vue.

Que puis-je faire, si je ne connais: - mon avis est de 100 x 150 unités grandes - Je veux que le Anchorpoint soit x = 100 et y = 20, à mon avis système de coordonnées

Une idée de comment y parvenir?

+0

Vous avez posé une série de questions dans le même sens: http://stackoverflow.com/questions/852863/how-can-i-rotate-an-uiimageview-by-20-degrees http://stackoverflow.com/questions/854137/can-i-set-the-origin-of-rotation-when-rotating-an-view-with-cgaffinetransformmake http://stackoverflow.com/questions/857158/why-does -setting-the-anchorpoint-of-the-layers-bounds-rectangle-behave-so-strang Peut-être que ce serait mieux comme une suite à l'une de ces questions, plutôt que d'une question autonome. –

Répondre

2

Sons comme vous utilisez

myView.layer.anchorPoint = CGPointMake(1.0, 0.133); 

Ils ne sont que des valeurs de pourcentage, non? 100/100 = 1 et 150/20 = 0,133.

+0

Oui, je pensais que c'était ce que je lui ai dit ici: http://stackoverflow.com/questions/857158/why-does-setting-the-anchorpoint-of-the-layers-bounds-rectangle-be-strang . Comme les composants de couleur dans un CGColor, les coordonnées X et Y d'un point d'ancrage sont normalisées à 1.0. Tout ce que vous avez à faire est de diviser par la taille de la couche dans cette dimension. –

Questions connexes