web-dev-qa-db-ja.com

UIViewの現在の角度/回転/ラジアンを取得しますか?

UIViewの現在の角度/回転/ラジアンをどのように取得しますか?

53
Hjalmar

このようにすることができます...

CGFloat radians = atan2f(yourView.transform.b, yourView.transform.a); 
CGFloat degrees = radians * (180 / M_PI);
108
Krishnabhadra

迅速:

// 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) )
14
Peter Kreinz

Swift 3の場合、次のコードを使用できます。

let radians:Float = atan2f(Float(view.transform.b), Float(view.transform.a))
let degrees:Float = radians * Float(180 / M_PI)
6
Rakesh Yembaram

他の多くの回答はatan2f、ただしCGFloatsを操作している場合、atan2そして、不要な中間キャストをスキップします。

スウィフト4:

let radians = atan2(yourView.transform.b, yourView.transform.a)
let degrees = radians * 180 / .pi
4
Dan Loewenherz

// Swift 3:For M.PI is depreciated now now Use Double.pi

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

// For Swift 4:

let radians = atan2(yourView.transform.b, yourView.transform.a)
let degrees = radians * 180 / .pi
4
Rohit Sisodia

In Swift 2およびXcode 7:

let RdnVal = CGFloat(atan2f(Float(NamVyu.transform.b), Float(NamVyu.transform.a)))
let DgrVal = RdnVal * CGFloat(180 / M_PI)
2
Sujay U N