Получить текущий угол / вращение / радиан для UIView? - PullRequest
53 голосов
/ 22 апреля 2011

Как вы получаете текущий угол / вращение / радиан UIView?

Ответы [ 6 ]

107 голосов
/ 22 апреля 2011

Вы можете сделать это так ...

CGFloat radians = atan2f(yourView.transform.b, yourView.transform.a); 
CGFloat degrees = radians * (180 / M_PI);
14 голосов
/ 22 октября 2014

Swift:

// Note the type reference as Swift is now string Strict

let radians:Double = atan2( Double(yourView.transform.b), Double(yourView.transform.a))
let degrees:CGFloat = radians * (CGFloat(180) / CGFloat(M_PI) )
6 голосов
/ 17 апреля 2017

Для Swift 3 вы можете использовать следующий код:

let radians:Float = atan2f(Float(view.transform.b), Float(view.transform.a))
let degrees:Float = radians * Float(180 / M_PI)
4 голосов
/ 15 декабря 2017

Многие другие ответы ссылаются на atan2f, но, учитывая, что мы работаем на CGFloat с, мы можем просто использовать atan2 и пропустить ненужное промежуточное приведение:

Swift 4:

let radians = atan2(yourView.transform.b, yourView.transform.a)
let degrees = radians * 180 / .pi
4 голосов
/ 20 июня 2017

// Для Swift 3: M_PI теперь амортизируется. Используйте Double.pi

let radians = atan2f(Float(yourView.transform.b), Float(yourView.transform.a));
let degrees = radians * Float(180 / Double.pi)

// Для Swift 4:

let radians = atan2(yourView.transform.b, yourView.transform.a)
let degrees = radians * 180 / .pi
2 голосов
/ 04 июня 2016

В swift 2 и Xcode 7:

let RdnVal = CGFloat(atan2f(Float(NamVyu.transform.b), Float(NamVyu.transform.a)))
let DgrVal = RdnVal * CGFloat(180 / M_PI)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...