CGAffineTransformMakeTranslation和CGAffineTransformTranslate

分类: ios基础2013-01-06 22:05 15513人阅读 评论(2) 收藏 举报

1.CGAffineTransformMakeTranslation每次都是以最初位置的中心点为起始参照

CGAffineTransformTranslate每次都是以传入的transform为起始参照

CGAffineTransformIdentity为最初状态,即最初位置的中心点

2.3个按钮,bt1,bt2,bt3,bt1和bt2控制bt3的移动

- (IBAction)bt1clicked:(id)sender {

self.bt3.transform = CGAffineTransformMakeTranslation(10, 0);

}

- (IBAction)bt2clicked:(id)sender {

//self.bt3.transform = CGAffineTransformTranslate(CGAffineTransformIdentity, 10, 0);

self.bt3.transform = CGAffineTransformTranslate(self.bt3.transform, 10, 0);

}

点击bt1,第一次移动10个像素,以后都是以最初位置的中心点为起始参照,所以后续bt1无论点击多少次,按钮都在初始位置偏移10个像素的位置不动

点击bt1一次,再点击bt2一次,偏移20像素,点击bt2时,上一次按钮点击的偏移作为这次的参照

只点击bt2一次,偏移10个像素

不断点击bt2,bt3不断偏移10个像素

bt2clicked的第一句不注释:

第一次点击bt2,bt3偏移20,后续再点击,永远再第一次点击后的位置,再点击bt1,回到初始偏移10的位置(往回走了10)

点击bt1,偏移10,再点击bt2,在bt1点击基础上再偏移10,后续再点击不动( CGAffineTransformTranslate(CGAffineTransformIdentity, 10, 0);每次都是从最初位置开始偏移)

时间: 2024-10-15 08:32:01

CGAffineTransformMakeTranslation和CGAffineTransformTranslate的相关文章

UIView 的Transform属性以及 CGAffineTransform的使用

什么是Transform? Transform是一个3×3的矩阵,如下图所示: 通过这个矩阵我们可以对一个坐标系统进行缩放,平移,旋转以及这两者的任意组着操作.而且矩阵的操作不具备交换律,即矩阵的操作的顺序不同会导致不同的结果.UIView有个transform的属性,通过设置该属性,我们可以实现调整该view在其superView中的大小和位置. 矩阵实现坐标变化背后的数学知识: 常用的三种实现选中的方式: //  实现的是放大和缩小 view.transform=CGAffineTransf

Transform动画初解 in Swift

创建一个界面,就像这样的: 顶部是一个UISegmentControl,用来制定transform的类型.分别是:CGAffineTransformMakeTranslation.CGAffineTransformTranslate.CGAffineTransformIdentity. 然后是一个UILabel,这个Label实时的显示当前的动画类型是什么. 桔色的是动画的View. 最下面是一个按钮,按这个按钮桔色的View开始执行动画. 其他的,蓝色的线就是这几个View的Constrain

第11月第31天 keyboardwillshow CGAffineTransformMakeTranslation

1. - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void)registerNotification { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showKeyboard:) name:UIKeyboardWillShowNotification object:nil]

iOS7新特性 ViewController转场切换(三) 自定义视图控制器容器的切换---非交互式

@继续前面的内容,这一章,主要介绍自定义ViewController容器上视图VC的切换.先来看看系统给我们提供的容器控制器 UINavigationController和UITabBarController 都有一个NSArray类型的属性viewControllers,很明显,存储的就是需要切换的视图VC.同理,我们定义一个ContainerViewController,是UIViewController的直接子类,用来作为容器依托,额,其他属性定义详见代码吧,这里不多说了.(PS:原先我进

UIView动画

1.淡入效果 // MARK: - UIView动画-淡入 @IBAction func simpleAnimationFadeIn() { UIView.beginAnimations(nil, context: nil) UIView.setAnimationDuration(2.0)//设置动画时间 testImageView.alpha = 0.0 UIView.commitAnimations() // //通过闭包实现 UIView淡入 // UIView.animateWithDu

20160122UIView动画

1.block式动画 横向或纵向移动XY [UIView animateWithDuration:0.5 animations:^{ self.aView.frame = CGRectMake(_aView.frame.origin.x, _aView.frame.origin.y + 50, _aView.frame.size.width, _aView.frame.size.height); }]; 或者 [UIView animateWithDuration:0.5 animations:

iOS下的2D仿射变换机制(CGAffineTransform相关)

仿射变换简介 仿射变换源于CoreGraphics框架,主要作用是绘制2D级别的图层,几乎所有iOS设备屏幕上的界面元素都是由CoreGraphics来负责绘制.而我们要了解的2D仿射变换是其下负责二维坐标到二维坐标的线性变换工作,它保持了二维图形的“平直性”(即:直线经过变换之后依然是直线,圆弧经过变换之后依然是圆弧)和“平行性”(即:二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变),只有依照向量产生的二维线条间的夹角会可能发生变化.仿射变换包括:平移(Tra

iOS:UIView视图与组件控件

一.UIView常见属性 (1)@property(nonatomic,readonly)UIView *superview; //获取自己的父控件对象 (2)@property(nonatomic,readonly,copy)UIView *subviews;//获取自己的所有子控件对象 (3)@property(nonatomic)NSInteger tag;//控件的ID标识,父控件可以通过tag来找到对应的子控件,默认为0 (4)@property(nonatomic) CGRect f

CAAnimation

在ViewController.m中 - (void)viewDidLoad {    [super viewDidLoad];             self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tutu.png"]];    self.imageView.frame = CGRectMake(100, 100, 100, 100);    [self.view addSubvie