UIView旋转角度
UIView旋转角度
马甲哥 发表于4年前
UIView旋转角度
  • 发表于 4年前
  • 阅读 4549
  • 收藏 3
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 获取UIView的旋转角度

最近做一个视图的旋转、放大、拖动、拉伸,其他的都慢慢解决了,就是旋转之后各种问题不好处理,最终归结到旋转角度的不能获取,纠结了好几天,终于找到了获取旋转角度的方法。

CGFloat radius = atan2f(view.transform.b, view.transform.a);
CGFloat degree = radius * (180 / M_PI);

旋转方式:

1、旋转到x度

view.transform = CGAffineTransformMakeRotation(x);

2、在现在旋转角度的基础上再旋转x度

CGAffineTransform currentTransform = view.transform;
CGAffineTransform newTransform = CGAffineTransformRotate(currentTransform, x); // 在现在的基础上旋转指定角度
view.transform = newTransform;

恢复到0度

CGAffineTransform currentTransform = view.transform;
CGFloat rotation = (0.0 - recordDegree) * M_PI / 180.0f; // recordDegree记录现在的旋转角度
CGAffineTransform newTransform = CGAffineTransformRotate(currentTransform, rotation);
view.transform = newTransform;

当然,根据上面旋转方式1的方法,直接将x设置为0更简单,这里只是提供一种思路。

Demo地址:旋转、放大、拖动、拉伸Demo

标签: 旋转 角度 获取 view
共有 人打赏支持
粉丝 2
博文 3
码字总数 1420
×
马甲哥
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: