Wie kann ich eine UIImageView um 20 Grad drehen?
-
21-08-2019 - |
Frage
Was muss ich tun, wenn ich einen UIImageView
drehen müssen? Ich habe eine UIImage
, die ich um 20 Grad gedreht werden soll.
Die Apple-docs sprechen von einer Transformationsmatrix, aber das klingt schwierig. Gibt es hilfreiche Methoden oder Funktionen zu erreichen, dass?
Lösung
Eine Transformationsmatrix ist nicht unglaublich schwierig. Es ist ganz einfach, wenn Sie die mitgelieferten Funktionen verwenden:
imgView.transform = CGAffineTransformMakeRotation(.34906585);
(. 34.906.585 beträgt 20 Grad in Radiant)
Andere Tipps
Wenn Sie nach rechts abbiegen wollen, muss der Wert größer 0, wenn Sie nach links drehen mögen gibt den Wert mit dem Zeichen „-“. Zum Beispiel -20.
CGFloat degrees = 20.0f; //the value in degrees
CGFloat radians = degrees * M_PI/180;
imageView.transform = CGAffineTransformMakeRotation(radians);
Swift 4:
let degrees: CGFloat = 20.0 //the value in degrees
let radians: CGFloat = degrees * (.pi / 180)
imageView.transform = CGAffineTransform(rotationAngle: radians)
Swift Version:
let degrees:CGFloat = 20
myImageView.transform = CGAffineTransformMakeRotation(degrees * CGFloat(M_PI/180) )
Swift 4.0
imageView.transform = CGAffineTransform(rotationAngle: CGFloat(20.0 * Double.pi / 180))
Hier ist eine Erweiterung für Swift 3.
extension UIImageView {
func rotate(degrees:CGFloat){
self.transform = CGAffineTransform(rotationAngle: degrees * CGFloat(M_PI/180))
}
}
Verbrauch:
myImageView.rotate(degrees: 20)
_YourImageView.transform = CGAffineTransformMakeRotation(1.57);
wobei 1,57 ist der Radiant-Wert für 90 Grad
Dies ist ein einfaches Formatierung Beispiel (20 Grad):
CGAffineTransform(rotationAngle: ((20.0 * CGFloat(M_PI)) / 180.0))
Soweit ich weiß, die Matrix in UIAffineTransform
verwendet, ist der einzige Weg, um eine Drehung ohne die Hilfe von einem Dritt Rahmen.