美文网首页
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