【问题标题】:Get the current angle/rotation/radian for a UIView?获取 UIView 的当前角度/旋转/弧度?
【发布时间】:2011-04-22 11:19:32
【问题描述】:

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

【问题讨论】:

标签: ios cocoa-touch uiview rotation


【解决方案1】:

你可以这样做......

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

【讨论】:

  • 我会投票给你 10 分!我只是碰巧看到这篇文章,因为我完全忘记了反三角函数,所以不得不笑!就像我开始觉得那些年前我的学校教育是一种浪费:D
【解决方案2】:

斯威夫特:

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

【讨论】:

    【解决方案3】:

    很多其他答案都参考atan2f,但鉴于我们在CGFloats 上运行,我们可以只使用atan2 并跳过不必要的中间转换:

    斯威夫特 4:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        //对于 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
        

        【讨论】:

          【解决方案6】:

          在 swift 2 和 Xcode 7 中:

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

          【讨论】:

            【解决方案7】:

            使用扩展:

            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)
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-06-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-08-23
              相关资源
              最近更新 更多