Как программно повернуть вид на 180 градусов на iOS?

Как программно повернуть вид на 180 градусов в приложении для iPhone?

Ответ 1

Должно быть возможно с помощью CGAffineTransform

Цитата из этот вопрос, это должно сделать трюк:

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;

Ответ 2

Поскольку CGAffineTransformRotate использует радианы в качестве своей единицы измерения, а 180 градусов - это то же самое, что и PI, вместо математики, предоставленной в других ответах, вы можете просто сделать:

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

Swift 3:

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

Если вы планируете делать много преобразований, лучше всего читать радианы, поэтому вы понимаете, что происходит.

Ответ 3

Простое решение:

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

Ответ 4

Тот же результат, что и @Manny, отвечает другой функцией.

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

Ответ 5

В Swift 3:

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

Ответ 6

Swift 4:

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

И КОММЕНТАРИЙ (у меня, по-видимому, недостаточно очков, чтобы ввести мой комментарий к его/ее ответу) для ответа Бенджамина Майо или vtcajones:

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

Это будет работать в первый раз, но в следующий раз, когда он будет вызван, он снова повернет представление, обратно к первоначальному вращению, что, вероятно, не то, что вы хотите. Было бы безопаснее устанавливать значение преобразования точно каждый раз.

Ответ 7

Последний синтаксис Swift 3:

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