获取 UIView 的当前角度/旋转/弧度?

发布于 2024-11-03 03:59:39 字数 31 浏览 1 评论 0原文

如何获取 UIView 当前的角度/旋转/弧度?

How do you get the current angle/rotation/radian a UIView has?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

£烟消云散 2024-11-10 03:59:39

你可以这样做...

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

You can do it this way...

CGFloat radians = atan2f(yourView.transform.b, yourView.transform.a); 
CGFloat degrees = radians * (180 / M_PI);
单调的奢华 2024-11-10 03:59:39

迅速:

// 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) )

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) )
可是我不能没有你 2024-11-10 03:59:39

许多其他答案都引用了 atan2f,但考虑到我们在 CGFloat 上操作,我们可以只使用 atan2 并跳过不必要的中间演员:

Swift 4:

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

A lot of the other answers reference atan2f, but given that we're operating on CGFloats, we can just use atan2 and skip the unnecessary intermediate cast:

Swift 4:

let radians = atan2(yourView.transform.b, yourView.transform.a)
let degrees = radians * 180 / .pi
慕烟庭风 2024-11-10 03:59:39

对于 Swift 3,您可以使用以下代码:

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

For Swift 3, you could use the following code:

let radians:Float = atan2f(Float(view.transform.b), Float(view.transform.a))
let degrees:Float = radians * Float(180 / M_PI)
二智少女猫性小仙女 2024-11-10 03:59:39

//对于 Swift 3:M_PI 现在已贬值 Use 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

//For Swift 3: M_PI is depreciated 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
你げ笑在眉眼 2024-11-10 03:59:39

在 swift 2 和 Xcode 7 中:

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

In swift 2 and Xcode 7 :

let RdnVal = CGFloat(atan2f(Float(NamVyu.transform.b), Float(NamVyu.transform.a)))
let DgrVal = RdnVal * CGFloat(180 / M_PI)
一杯敬自由 2024-11-10 03:59:39

使用扩展:

extension UIView {
    
    var rotation: Float {
        let radians:Float = atan2f(Float(transform.b), Float(transform.a))
        return radians * Float(180 / M_PI)
    }
}

用法:

let view = UIView()
print(view.rotation)

Using extensions:

extension UIView {
    
    var rotation: Float {
        let radians:Float = atan2f(Float(transform.b), Float(transform.a))
        return radians * Float(180 / M_PI)
    }
}

Usage:

let view = UIView()
print(view.rotation)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文