CGAffineTransform

基本概念

struct CGAffineTransform{ CGFloat a, b, c, d; CGFloat tx, ty;};

以上参数在矩阵中的表示为:

|a b 0| |c d 0| |tx ty 1|

为了把二维图形的变化统一在一个坐标系里,引入了齐次坐标的概念,即把一个图形用一个三维矩阵表示,其中第三列总是(0,0,1),用来作为坐标系的标准。所以所有的变化都由前两列完成。
基本使用(配合动画)

旋转[UIView animateWithDuration:0.5 delay:0.0f options:UIViewAnimationOptionCurveLinear animations:^{ [UIView setAnimationRepeatCount:1e100];//设置动画重复次数 box.transform = CGAffineTransformMakeRotation(M_PI/2);}completion:NULL];
缩放
[UIView animateWithDuration:0.5 delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^{ box.transform = CGAffineTransformMakeScale(0.1, 1);}completion:NULL];
移动
[UIView animateWithDuration:0.5 delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^{ box.transform = CGAffineTransformMakeTranslation(50, 50);}completion:NULL];
串联
[UIView animateWithDuration:0.5 delay:0.0f options:UIViewAnimationOptionCurveLinear animations:^{ CGAffineTransform transform2 = CGAffineTransformMakeTranslation(50, 50); CGAffineTransform transform1 = CGAffineTransformMakeScale(0.1, 1); box.transform = CGAffineTransformConcat(transform1, transform2);}completion:NULL];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容