view的一些旋转动画

在做动画时,uiview的旋转方向可以这样控制

CGAffineTransform transform = CGAffineTransformMakeRotation(x * M_PI/180.0);

若想顺时针,则x为正数,如30;若想逆时针,则x为负数即可,如-30
还有旋转的原点,即以哪个点为圆心来旋转。这个点的选择与平常的坐标系不同,需要用到layer。
如以imageView的左下角为圆心转,则有

_folatImageView.layer.anchorPoint = CGPointMake(0, 1);
// (0, 0)指左上角, (1,1)指右下角, (0.5,0.5)指中心点,以此类推

如若让imageView以左下角按逆时针转动,则有

_folatImageView.layer.anchorPoint = CGPointMake(0, 1);
//从原位逆时针转一定角度
-(void)floatUp{
    [UIView animateWithDuration:1.0f animations:^{
        _folatImageView.layer.transform = CATransform3DMakeRotation(-20 * M_PI/180.0, 0, 0, 1);
    } completion:^(BOOL finished) {

    }];
}
//恢复原位
-(void)floatDown{
    [UIView animateWithDuration:1.0f animations:^{
        _folatImageView.layer.transform = CATransform3DMakeRotation(0, 0, 0, 0);
    } completion:^(BOOL finished) {

    }];
}

对于view的旋转,还有(默认以中心顺时针旋转)
①旋转到x度

view.transform = CGAffineTransformMakeRotation(x);

②在现有旋转的度数上再旋转x度

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

③恢复到原位,即0度

view.transform = CGAffineTransformMakeRotation(0);

在做一些简单的动画,如图

可以用如下代码
先定义_testView

UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 80, mScreenWidth, 0.1)];
view.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:view];
_testView = view;
//点击按钮时的动画
-(void)clickTheBtn:(UIButton *)btn{
    if (_testOpened) {
        [UIView animateWithDuration:1.0f animations:^{
            _testView.height = 0.1;
        }];
    } else {
        [UIView animateWithDuration:1.0f animations:^{
            _testView.height = 200;
        }];
    }
    _testOpened = !_testOpened;
    //下滑箭头的倒置
    _testBtn.transform = CGAffineTransformRotate(_testBtn.transform, M_PI);
}

由上可以看出,view的伸展收缩动作只需改变其高度即可。

时间: 2024-10-09 19:42:24

view的一些旋转动画的相关文章

[android] 优酷环形菜单-旋转动画

获取房子,菜单图标ImageView对象,获取三个圆环RelativeLayout对象 给菜单图标(icon_menu)设置点击事件 定义一个成员变量isLevel3Show来存储第三级菜单是否显示 判断上面的变量,来显示隐藏第三级菜单,定义一个类实现动画效果 切换变量,isLevel3Show=!isLevel3Show 定义一个工具类MyUtils,实现旋转动画 定义一个startAnimOut() 获取RotateAnimation对象,旋转对象的默认中心是左上角,开始度数默认是水平向右为

UIActivityIndicatorView的使用方法(旋转动画)

- (void)viewDidLoad { [super viewDidLoad]; //创建UIActivityIndicatorView并设置样式:WhiteLarge为37 * 37,Gray和White为20 * 20 _activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; //设置对象的位置,大小

Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)

本文主要介绍Android立体旋转动画,或者3D旋转,下图是我自己实现的一个界面 立体旋转分为以下三种: 1. 以X轴为轴心旋转 2. 以Y轴为轴心旋转 3. 以Z轴为轴心旋转--这种等价于android默认自带的旋转动画RotateAnimation 实现立体旋转核心步骤: 1. 继承系统Animation重写applyTransformation方法 通过applyTransformation方法的回调参数 float interpolatedTime, Transformation t 来

百思不得其解,关于立方体旋转动画(垂直方向)

============问题描述============ 想做个自定义的view 竖直滑动手势就是翻页. 效果大概是这样的 我用的是属性动画. 用的rotation那个方法让下面的view从-90转到0 上面的view从0转到90 但是 效果跟预期不一样. 求助,有做过的大神来帮帮忙.十分感谢. 下面是我的主要的代码 public class MainActivity extends Activity {     private Button btn;     private ImageView

android动画的透明度渐变、旋转动画、缩放动画、评议动画

这是我在学习android的时候做的一个小小的东西可以实现图片的旋转.平移.缩放.透明度的渐变 首先我们要创建一个android的项目 在自己的drawable-mdpi中添加自己的图片 然后在res目录中,创建一个名称是anim(动画)的目录,并且在该目录中实现图片的操作 首先是anim_alpha.xml定义一个实现透明渐变的动画该动画实现的是完全不透明-->完全透明---->完全不透明 <pre name="code" class="html"

android 细节之 旋转动画

Flip Animation for Android: 最近项目中用到了一个小动画,让物体实现一定的3D旋转效果,现记录如下: public class FlipAnimation extends Animation { private Camera mCamera; private View mFromView; private View mToView; private float mCenterX; private float mCenterY; private boolean mForw

iOS 特定图片的按钮的旋转动画

最近做的东西中,要为一个有特定图片的按钮添加旋转动画,Demo代码如下: #import "ViewController.h" @interface ViewController () { BOOL flag; } @property (strong, nonatomic) UIImageView *imageView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; flag

Android自定义动画类——实现3D旋转动画

Android中的补间动画分为下面几种: (1)AlphaAnimation :透明度改变的动画. (2)ScaleAnimation:大小缩放的动画. (3)TranslateAnimation:位移变化的动画. (4)RotateAnimation:旋转动画. 然而在实际项目中透明度.缩放.位移.旋转这几种动画并不能满足我们的需求,比如我们需要一个类似下面的3D旋转动画. 这时候就需要用到自定义动画,自定义动画需要继承Animation,并重写applyTransformation(floa

android旋转动画和平移动画详解,补充说一下如果制作gif动画放到csdn博客上

先上效果图: 我这里用的是GifCam来制作的gif动画,可以在http://download.csdn.net/detail/baidu_nod/7628461下载, 制作过程是先起一个模拟器,然后把GifCam的框拖到模拟器上面,点击Rec的new先,然后点击Rec,然后就save到本地成gif文件 这里做一个左右旋转,上下旋转,和左右移动的动画,先自己建立一个View的类,作为操作的对象: public class MyView extends View { private Paint m