• CGAffineTransformMakeTranslation和CGAffineTransform


    摘要: CGAffineTransformMakeTranslation和CGAffineTransformTranslate的区别

    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);每次都是从最初位置开始偏移)

  • 相关阅读:
    缩减apk大小
    android 的安全问题
    android listview 优化
    Python正则表达式指南
    程序员必须知道的几个国外IT网站
    去掉配置项,开发自信的软件
    去掉配置项,开发自信的软件
    Linux防火墙设置
    Linux防火墙设置
    linux下如何使用sftp命令进行文件上传和下载
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5949481.html
Copyright © 2020-2023  润新知