自我总结- CGAffineTransform

在应用中我们经常需要做一些仿射变换 可以用于 平移、旋转、缩放变换路径;

View有一个属性transform 可以指定一个 CGAffineTransform 即可完成仿射变换

1.平移变换

//  x方向移动一百 y不动
    CGAffineTransform transform= CGAffineTransformMakeTranslation(100,0);
//  viewanmination是需要进行变换的View
    self.viewanmination.transform=transform
//   系统提供了一个便利方法直接指定 两种方法效果一样

//    CGAffineTransformTranslate(<#CGAffineTransform t#>, <#CGFloat tx#>, <#CGFloat ty#>)

//    self.viewanmination.transform=CGAffineTransformTranslate(self.viewanmination.transform, 100, 0);

2 缩放

//x方向缩小0.5 y缩小0.5
    CGAffineTransform transt= CGAffineTransformMakeScale(0.5, 0.5);
    self.viewanmination.transform=transt;
    
   self.viewanmination.transform=CGAffineTransformScale(self.viewanmination.transform, 0.5, 0.5);

3 旋转

//输入需要旋转的角度
    CGAffineTransform trans=CGAffineTransformMakeRotation(M_PI_4);
    self.viewanmination.transform=trans;
    self.viewanmination.transform=CGAffineTransformRotate(self.viewanmination.transform, M_PI_4);

当然这三种效果也可以组合着用 需要借助CGAffineTransformIdentity 这个理解为初始化即可 如下代码实现了旋转和缩放

    
//初始化坐标
    CGAffineTransform trans=CGAffineTransformIdentity;
//旋转;
    trans=CGAffineTransformRotate(trans, M_PI_4);
// 缩放
    trans=CGAffineTransformScale(trans, 0.5, 0.4);
    self.viewanmination.transform=trans;

 

posted @ 2016-03-21 15:13  鲁国将士  阅读(225)  评论(0编辑  收藏  举报