UIView顺时针旋转、逆时针旋转
UIView顺时针旋转、逆时针旋转
般若花 发表于4年前
UIView顺时针旋转、逆时针旋转
  • 发表于 4年前
  • 阅读 7298
  • 收藏 2
  • 点赞 1
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: 为了美化界面,通常使用动画的形式来进行UIView的动态效果

    由于项目需求,需要做点击向下剪头时,剪头逆时针旋转180度,再点击,顺时针旋转180度(恢复原位)

    因为我的基础不牢固,遇到这种知识点的问题就百度,但是网上找到的全是逆时针旋转,想改成顺时针,第一反应是把旋转角度前加“-”,可惜无果。后来,试了几个角度值,终于实现的UIView的顺时针旋转


逆时针旋转:

        //arrowLeft 是要旋转的控件
        //逆时针 旋转180度 
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:0.2]; //动画时长
        arrowLeft.transform = CGAffineTransformMakeRotation(180 *M_PI / 180.0);
        CGAffineTransform transform = arrowLeft.transform;
        //第二个值表示横向放大的倍数,第三个值表示纵向缩小的程度
        transform = CGAffineTransformScale(transform, 1,1);
        arrowLeft.transform = transform;
        [UIView commitAnimations];

顺时针旋转:

        //顺时针 旋转180度
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:0.2]; //动画时长
        arrowLeft.transform = CGAffineTransformMakeRotation(0*M_PI/180);
        CGAffineTransform transform = arrowLeft.transform;
        transform = CGAffineTransformScale(transform, 1,1);
        arrowLeft.transform = transform;

    正常想法,一个控件经历一次顺时针旋转180度之后(也就是执行一遍这个方法),再执行一遍,应该是回归原位。但是不知道为什么没有。可能是跟设置坐标类似吧,它旋转的时候不是以现在的角度为基准进行旋转,而是一定固定好要旋转到的角度。我现在是这么理解的。项目忙,没时间细深究,等有空要好好研究一下iOS的各种动画效果以及参数。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 4
博文 7
码字总数 1799
×
般若花
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: