iOS学习笔记3-Affine变换
来源:互联网 发布:淘宝职业打假人名单 编辑:程序博客网 时间:2024/06/06 09:32
今天我们来讲讲UIView中提供的对其内容进行affine变换的功能。具体来说,变换包括扩大、缩小、旋转、反转、平移等。
要进行affine变换,其实就是想UIView的transform属性中设置CGAffineTransform的结构体。当然,这需要行列式的知识。为了方便初学者的理解,此处就绕过行列式的设置,直接利用UIKit库为我们提供的变形类型。
此处,我做了一个旋转的demo。希望通过这个,能让初学者举一反三的学会其他的affine操作。
- (void)viewDidLoad
{
[super viewDidLoad];
//初始化视图
UIImage *catIMG = [UIImage imageNamed:@"cat"];
catView = [[UIImageView alloc]initWithImage:catIMG];
catView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[self.view addSubview:catView];
//加入一个button,实现旋转操作的触发
UIButton *changeView = [UIButton buttonWithType:UIButtonTypeRoundedRect];
changeView.frame = CGRectMake(0, 0, 100, 40);
changeView.center = CGPointMake(160, 400);
[changeView setTitle:@"Affine" forState:UIControlStateNormal];
changeView.titleLabel.font = [UIFont boldSystemFontOfSize:12];
//利用此方法实现------Action方法,即旋转操作
[changeView addTarget:self action:@selector(Action) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:changeView];
}
- (void)Action{
//利用CGAffineTransformMakeRotation(度数)实现UIImageView的旋转,当然,如UIlabe和UIButton等UIView子类也同样适用
catView.transform = CGAffineTransformMakeRotation(90 * (M_1_PI / 180.0));
}
效果如如下:
点击button后,调用Action方法,实现旋转的效果图如下:
当然,CGAffineTransform的变换类型还有:
扩大缩小:CGAffineTransformMakeScale(宽度倍数,高度倍数)
左右反转:CGAffineTransformScale( 原CGAffineTransform对象,-1.0,1.0)
上下反转:CGAffineTransformScale( 原CGAffineTransform对象,1.0,-1.0)
平行移动:CGAffineTransformMakeTranslation(向右移动像素,向上移动像素)
两个函数的复合:CGAffineTransformContact( CGAffineTransform1,CGAffineTransform2)
- iOS学习笔记3-Affine变换
- OpenCV学习--仿射变换(affine)
- 仿射变换(Affine Transform)
- 仿射变换(Affine Transform)
- 仿射变换 affine transformation
- 仿射变换(Affine Transformation)
- OpenCV入门学习(二)Affine Transformations(仿射变换)
- PDF----affine(仿射)矩阵变换
- 何为仿射变换(Affine Transformation)
- 何为仿射变换(Affine Transformation)
- Affine transformation(仿射变换)
- Ransac+仿射变换(Affine Transform)
- Q76:仿射变换(Affine Transformation)
- 图释仿射(Affine)变换与平行投影
- Haugh变换学习笔记
- OpenGl学习笔记3之模型变换、视图变换、投影变换、视口变换介绍
- 仿射变换(Affine transformation)与python实践
- UIKit-UIView二维图形Affine几何基本变换
- C# ORA 00904 标识符无效
- c关键字 const
- servlet反射,模拟struts的action控制跳转
- 软件设计师考试各种公式
- 找出这个1000位数字中连续5个数字乘积的最大值。
- iOS学习笔记3-Affine变换
- Linux基本命令(一)
- 数据结构学习笔记之表、栈、队列
- ajax理解与操作流程
- 国内外知名IT科技博客
- ubuntu修改默认输入法翻页功能
- HTML5-FileReader
- Attribute in C#
- PAIP.paip.手机离线ROOT过程总结