Comment centrer deux vues en utilisant view.frame et view.center
Je suis en train de faire quelque chose d'assez de base ici. Je suis l'aide d'un bloc à base de UIView animation pour apporter de la sous-vue qui est actuellement hors de l'écran à la vue actuelle du centre. Évidemment, le sp.view.frame = self.view.center
ligne est question ici. En fin de compte, comment puis-je faire ce que je veux?
[UIView animateWithDuration:1 delay:0
options:UIViewAnimationOptionCurveLinear
animations:^{
sp.view.frame = self.view.center;
}
Merci!
source d'informationauteur SimplyKiwi
Vous devez vous connecter pour publier un commentaire.
D'abord,
sp.view.frame
renvoie uneCGRect
alors queself.view.center
renvoie uneCGPoint
. Les deux ne sont pas du même type et donc on ne peut pas être définie à l'autre. ASssuming vous souhaitez définir le centre desp.view
être le centre de l'self.view
vous pouvez le faire de deux façons:ou
est un CGPoint struct.
est un CGRect struct.
Vous ne pouvez pas affecter un CGPoint à un CGRect, que les types ne sont pas les mêmes.
Si vous voulez centrer une sous-vue, utiliser quelque chose comme cela, en supposant que
sp.view
est une sous-vue deself.view
:MODIFIER
Ou comme Noé l'a suggéré:
Grâce Noé, btw...
Il est possible d'ajouter une macro comme ceci
#define countmid(X,Y) (float) (X-Y)/2
et puis l'utiliser dans le code comme
float Center = countmid(VIEW.frame.size.width,SUB.frame.size.width);
pour placer vos SOUS vue au centre horizontal de VUE
De même pour le centre Vertical, il suffit d'utiliser la hauteur à l'encontre de la largeur