transform主要由这几个方法
CGAffineTransformMakeTranslation(平移)
CGAffineTransformMakeScale(缩放)
CGAffineTransformMakeRotation(旋转)
CGAffineTransformIdentity(还原到之前的状态)
另外还有几个叠加 ,大致意思是在一个transfrom基础上再做一次transform
CGAffineTransformTranslate
CGAffineTransformScale
CGAffineTransformRotate
- 平移
/* 基于本身的frame移动(只移动一次) */
vew.transform = CGAffineTransformMakeTranslation(15, 15);
/* 基于本身的frame移动(可以一直移动) */
view.transform = CGAffineTransformTranslate(view.transform, 15, 15);
- 旋转
/* 基于本身的位置旋转(只旋转一次) */
view.transform = CGAffineTransformMakeRotation(M_PI_4);
/* 基于本身的位置旋转(可以一直旋转) */
view.transform = CGAffineTransformRotate(view.transform, M_PI_4);
3.缩放(包括放大)
/* 在原来的frame上缩放(只缩放一次) */
view.transform = CGAffineTransformMakeScale(1.5, 1.5);
/* 在缩放后的frame上缩放(可以一直缩放) */
view.transform = CGAffineTransformScale(view.transform, 1.5, 1.5);
缩放或旋转默认都是围绕视图的中心点来进行的,通过 AnchorPoint 的设定,可以改变缩放或旋转围绕的点。这个点被称为锚点。
view.layer.anchorPoint = newAnchorPoint; // 修改锚点
// 将缩放或旋转围绕的点还原为默认
view.layer.anchorPoint = CGPointMake(0, 0);
可以配合UIVIew 动画使用
[UIView animateWithDuration:1 animations:^{
self.giftView.transform = CGAffineTransformRotate(self.giftView.transform, M_PI_4);
self.giftView.transform = CGAffineTransformScale(self.giftView.transform, 2, 2);
}];
网友评论