web-dev-qa-db-fra.com

Quelle est la bonne façon de faire pivoter un UILabel de 90 degrés?

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: enter image description here

Quelle est la bonne façon de faire pivoter un UILabel de 90 degrés?


Ok. J'ai la syntaxe de transformation, mais ...
Voici l'image originale:
enter image description here

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: 
enter image description here

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?

24
Frederick C. Lee

Swift 3 version:

dayLabel.transform = CGAffineTransform(rotationAngle: .pi / 2)
41
Mette

Essayez de cette façon: 

self.dayLabel.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2));
16
mattyU
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. 

8
chris

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))
3
Daphyduck

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

2
rakeshbs

Swift 4

@IBOutlet weak var ourView: UIView!

    ourView.transform = CGAffineTransform(rotationAngle: CGFloat(Double(-45) * .pi/180))
//i gave it -45 degree.

 enter image description here

0
akbar khan