Как программно повернуть вид на 180 градусов в приложении для iPhone?
Как программно повернуть вид на 180 градусов на iOS?
Ответ 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)