在应用中我们经常需要做一些仿射变换 可以用于 平移、旋转、缩放变换路径;
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;