美文网首页
addSubview 和 insertSubView CGA

addSubview 和 insertSubView CGA

作者: 池鹏程 | 来源:发表于2017-03-24 21:55 被阅读0次

    addSubview  和 insertSubView 区别

    子视图是以栈的方式存放的
    每次addsubview时都是在最后面添加。

    每次在addsubview前和addsubview后可以看看[self.view.subViews count];

    你看看你的子视图是被添加到哪个位置了。

    另外[self.view addSubView:xx.view]   其实就等于[self.view insertSubView:xx.view atIndex:[self.view.subViews count]];

    即在最顶层添加view。

    总之:

    addSubview是一层一层往上加,新加的只能放到最上层

    insertSubView可以控制将view添加到指定的层。

    参考:addSubview和insertSubview 区别

    CGAffineTransformMakeTranslation 和 CGAffineTransformTranslate


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

    相关文章

      网友评论

          本文标题:addSubview 和 insertSubView CGA

          本文链接:https://www.haomeiwen.com/subject/belqottx.html