2011-07-25 16 views

Odpowiedz

12

Powinno być możliwe dzięki zastosowaniu CGAffineTransform

Cytat z this question, to powinno załatwić sprawę:

CGFloat radians = atan2f(yourView.transform.b, yourView.transform.a); 
CGFloat degrees = radians * (180/M_PI); 
CGAffineTransform transform = CGAffineTransformMakeRotation((90 + degrees) * M_PI/180); 
yourView.transform = transform; 
+1

Obraca to o 90 stopni. Jeśli chcesz go obrócić o 180 stopni, ostatnia linia powinna być 'CGAffineTransformMakeRotation ((' ** 180 ** '+ degrees) * M_PI/180)' zamiast 90 –

4

sam wynik jak @ odpowiedź Manny Korzystanie inną funkcję.

CGFloat degreesOfRotation = 180.0; 
view.transform = CGAffineTransformRotate(view.transform, 
    degreesOfRotation * M_PI/180.0); 
25

jako „CGAffineTransformRotate” używa radianach jak jego jednostkę miary i 180 stopni jest taka sama jak PI, zamiast matematyki przewidziane w innych odpowiedzi można po prostu zrobić:

view.transform = CGAffineTransformRotate(view.transform, M_PI); 

Swift 3:

view.transform = view.transform.rotated(by: .pi) 

Jeśli planujesz robić dużo przekształceń, to chyba najlepiej przeczytać na radiany, aby zrozumieć, co jest goi ng na.

6

Proste rozwiązanie:

view.transform = CGAffineTransformMakeRotation(degrees*M_PI/180); 
4

Swift 3:

let rotationDegrees = 180.0 
let rotationAngle = CGFloat(rotationDegrees * M_PI/180.0) 
view.transform = CGAffineTransform(rotationAngle: rotationAngle) 
0

Najnowsze Swift 3 Składnia

view.transform = view.transform.rotated(by: .pi) 
0

Swift 4:

self.view.transform = CGAffineTransform(rotationAngle: .pi); 

I KOMENTARZ (I widocznie nie masz wystarczającej liczby punktów, aby wejść do mojego komentarza na jego/jej odpowiedź) dla Benjamina Mayo lub vtcajones odpowiedź:

view.transform = view.transform.rotated(by: .pi) 

to zadziała za pierwszym razem, ale następnym razem, gdy zostanie wywołany, spowoduje ponowne obrócenie widoku, z powrotem do oryginalnego obrotu, co prawdopodobnie nie jest tym, czego potrzebujesz. Bezpieczniej byłoby ustawić wartość transformacji dokładnie za każdym razem.

Powiązane problemy