changer l'origine d'une imageView
JonathanSiboni
Membre
Bonjour a tous , voici mon problème :
je dois afficher 3 cercles (en imageView). Ceux ci peuvent prendre plusieurs valeurs de width et de height : 90 / 90 , 165 / 165 et 200 / 200 (donc 3 tailles de cercles)
ce que je veux faire c'est que a chaque fois que la taille des cercles va changer (les tailles changent toutes en meme temps) , que la longueur entre les cercles soit egale, et egale a la longueur entre le bord d'un cercle est le bord de la vue.
j'ai donc fait mes declarations :
int r1; //diametre cercle 1
int r2; //diametre cercle 2
int r3; //diametre cercle 3
int rt; //somme des diametres
int l; //distance entre les cercles
int L; //largeur ipad donc 768
int c1; //coordonne x du centre du cercle 1
int c2; //coordonne x du centre du cercle 2
int c3; //coordonne x du centre du cercle 3
après cela , j'ai rentre mes formules :
rt = r1 + r2 + r3 ;
l = ( L - rt ) / 4;
c1 = l + (r1)/2 ;
c2 = (2 * l) + r1 + (r2)/2 ;
c3 = L - l - (r3)/2 ;
J'ai mis des logs pour voir si cela marchait , et oui , Xcode me sort bien toutes les bonnes valeurs .
J'ai ensuite fixé le centre de chaque cercle en fonction des valeurs qu'il aura calculer : (rond1,rond2 et rond3 sont des UIImageView)
rond1.center = CGPointMake(c1, 830);
rond2.center = CGPointMake(c2, 830);
rond3.center = CGPointMake(c3, 830);
Mais le problème c'est que apres avoir écrit les lignes qui servent a régler la frame :
rond1.frame = CGRectMake(rond1.frame.origin.x, rond1.frame.origin.y,r1, r1);
rond2.frame = CGRectMake(rond2.frame.origin.x, rond2.frame.origin.y,r2, r2);
rond3.frame = CGRectMake(rond3.frame.origin.x, rond3.frame.origin.y,r3, r3);
Les cercles ne sont plus alignés ! a mon avis c'est du au fait que l'origin est prise en haut a gauche de l'imageView.
je voudrais donc que l'origin soit confondue avec le centre du cercle (c1, c2 et c3) pour que cela marche ! (je penses ?)
J'ai cherché sur le net et j'ai vu que on pouvait faire ca sur les anciennes versions d'interface builder comme ceci :
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
justement , car je dois après régler la width et la height de l'imageview ! je voulais le faire comme ca :
mais ca ne marche pas et ca met un message :
y'a pas un autre moyen de régler seulement les dimensions d'une imageview sans passer par le imageView.frame ?
sur tout ce que j'ai trouve sur internet il passait par ca et faisait ca :
C'est parce que tu as utilisé == en place de =
Mais, quand même, tu ne peux pas modifier le frame d'un UIView - il faut le remplacer.
Mais si, tu l'as déjà trouvé...
Dans ton code, il faudrait, d'abord, modifier la taille et, après, le centre