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?

War es hilfreich?

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.

zu erreichen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top