Dites que vous voulez que le texte se lève vers le haut. Bien sûr, il est facile de le faire pivoter 90degrees:Le moyen le plus élégant de faire pivoter un UILabel; maintenir le coin inférieur gauche
someUIView.transform = CGAffineTransformMakeRotation(- 90.0f * M_PI/180.0f);
Mais en général, vous voulez qu'il MAINTENIR LE BAS GAUCHE COIN
Ainsi, la position dans storyboard IB vous le texte (horizontal) où vous voulez le coin inférieur gauche être, et vous vous attendez à ce que lorsque l'application est en cours d'exécution, et le texte est vertical, c'est où "nouveau" coin inférieur gauche du texte vertical sera.
est ici une catégorie sur UIView ...
-(void)standOnBottomLeftCorner
{
CGPoint org = self.frame.origin;
org.y += self.frame.size.height;
self.transform = CGAffineTransformMakeRotation(- 90.0f * M_PI/180.0f);
CGRect nu = self.frame;
nu.origin = org;
nu.origin.y -= nu.size.height;
self.frame = nu;
}
Cependant, note:
JRT explique: « Vous ne devez pas définir le cadre sur une vue transformé, il est comportement indéfini. "
Sauf si je suis bourré, ça marche ... mais quelle est la meilleure façon?
Cette idée illustrations très intelligent de Matic show:
Ce que vous cherchez le plus, c'est .layer.anchorPoint –
Astuce brillante, merci - mais FWIW ça ne tourne pas vraiment autour d'un point (je ne pense pas?) Voir diagramme! – Fattie
Ce point semble être (height/width * .5f, .5f) au lieu de (.0f, 1.0f). –