UIImageView的旋转

2017-05-16  本文已影响1836人  就那两三事

使用transform属性

transform我们一般称为形变属性,其本质是通过矩阵变化改变控件的大小、位置、角度等。这里主要讲旋转······

使用CGAffineTransformMakeRotation

只能变化一次,因为这种方式的变化始终是以最原始的状态值进行变化的,所以只能变化一次

例子:
<code>
UIImageView *openImg = [[UIImageView alloc] initWithFrame:CGRectMake(30, 30, 30, 30)];
[openImg setImage:[UIImage imageNamed:@"drop_down1"]];
openImg.transform = CGAffineTransformMakeRotation(M_PI);
</code>

上面代码简单来说,就是创建一个UIImageView,设置图片,并将自身顺时针旋转180度

使用CGAffineTransformRotate

能够多次变化,每次变化都是以上一次的状态(CGAffineTransform t)进行的变化,所以可以多次变化

CGAffineTransformRotate的使用相对来说比CGAffineTransformMakeRotation复杂一些,步骤:

  1. 首先获取UITableView的CGAffineTransform函数:
    CGAffineTransform transform=self.myImageView.transform;
  2. 对获取的CGAffineTransform函数进行旋转,旋转角度为逆时针旋转90度:
    transform=CGAffineTransformRotate(transform, -M_PI/2.0);
  3. 将新获取的CGAffineTransform函数赋给ImageView(不一定是ImageView,其它也可以,这里不赘述),即可旋转:
    self.myImageView.transform=transform;

例子:
<code>
//创建openImg,并设置图片
UIImageView *openImg = [[UIImageView alloc] initWithFrame:CGRectMake(30, 30, 30, 30)];
[openImg setImage:[UIImage imageNamed:@"drop_down1"]];
//创建transform对象
CGAffineTransform transform = openImg.transform;
//顺时针旋转180度
transform=CGAffineTransformRotate(transform, M_PI);
//将新获取的CGAffineTransform函数赋给ImageView
openImg.transform = transform;
</code>

其它

上一篇 下一篇

猜你喜欢

热点阅读