J'essaie de faire pivoter un UILabel de 90 degrés dans un UIView.
L’extrait suivant est une tentative d’écrire quelque chose dans Swift qui puisse le faire:
// #define DEGREES_TO_RADIANS(x) (x * M_PI/180.0)
let angle:CGFloat = (90.0 * 3.14/180.0) as CGFloat
let rotation = CGAffineTransformMakeRotation(angle)
self.dayLabel.transform(rotation)
J'ai rencontré quelques erreurs de compilation:
1) Tenter de convertir des radians en angle rencontrait un problème de conversion double -> float et devait donc utiliser '3.14' contre 'M_Pi' .
2) L’erreur suivante s’est produite lors de la tentative de transformation effective sur UILabel:
Quelle est la bonne façon de faire pivoter un UILabel de 90 degrés?
Mon objectif est de positionner 'TUE' verticalement contre le côté gauche de la cellule.
À l’origine, j’ai essayé une rotation à 90 degrés:
self.dayLabel.transform = CGAffineTransformMakeRotation(-90)
Et a obtenu ce qui suit:
J'ai essayé de varier les degrés mais je ne peux pas obtenir une position verticale solide .
Est-ce que je peux/puis-je avoir plus étroit le contrôle de la transformation?
Swift 3 version:
dayLabel.transform = CGAffineTransform(rotationAngle: .pi / 2)
Essayez de cette façon:
self.dayLabel.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2));
self.dayLabel.transform = CGAffineTransformMakeRotation(M_PI_2)
Méthode correcte pour effectuer la transformation de 90 degrés, où M_PI_2
est la valeur radian prédéfinie pour 90 degrés.
Swift 4 solution avec valeur en degrés:
let degrees : Double = -90; //the value in degrees
self.dayLabel.transform = CGAffineTransform(rotationAngle: CGFloat(degrees * .pi/180))
UIView.transform
est une property
de la UIView
pas une function
.
Essayez de régler self.label.transform = CGAffineTransformMakeRotation(angle)
à la place.
Pour plus d'informations https://developer.Apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//Apple_ref/occ/instp/UIView/transform